自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 [剑指 offer]--树--面试题28. 对称的二叉树

1 题目描述 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。 2 解题思路 解题方法: 递归 对称二叉树定义: 对于树中 任意两个对称节点 str1 和 str2 ,一定有:str1.val=str2.val :即此两对称节点值相等。 s...

2020-04-09 11:23:36

阅读数 4

评论数 0

原创 [剑指 offer]--树--面试题54. 二叉搜索树的第k大节点

1 题目描述 给定一棵二叉搜索树,请找出其中第k大的节点。 2 解题思路 方法: 中序遍历 + 提前返回 本文解法基于此性质:二叉搜索树的中序遍历为 递增序列 。 根据以上性质,易得二叉搜索树的 中序遍历倒序 为 递减序列 。 因此,求 “二叉搜索树第 k 大的节点” 可转化为求 “...

2020-04-09 10:38:59

阅读数 3

评论数 0

原创 [剑指 offer]--树--面试题27. 二叉树的镜像

1 题目描述 请完成一个函数,输入一个二叉树,该函数输出它的镜像。 2 解题思路 二叉树镜像定义: 对于二叉树中任意节点 root ,设其左 / 右子节点分别为 left,right ; 则在二叉树的镜像中的对应 root 节点,其左 / 右子节点分别为 right,left 。 方法...

2020-04-08 10:55:39

阅读数 10

评论数 0

原创 [剑指 offer]--树--面试题55 - II. 平衡二叉树

1 题目描述 输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 2 解题思路 方法一:先序遍历 + 判断深度 (从顶至底) 此方法容易想到,但会产生大量重复计算,时间复杂度较高。 思路是构造一个获取当前子...

2020-04-07 19:00:46

阅读数 18

评论数 0

原创 [剑指 offer]--树-- 面试题55 - I. 二叉树的深度

1 题目描述 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 2 解题思路 树的遍历方式总体分为两类: 深度优先搜索(DFS)、广度优先搜索(BFS); 常见的 DFS : 先序遍历、中序遍历、后序遍历; 常见...

2020-04-07 17:57:07

阅读数 21

评论数 0

原创 [剑指 offer]--位运算--面试题39. 数组中出现次数超过一半的数字

1 题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 限制: 1 <= 数组长度 <= 50000 ...

2020-04-07 13:01:46

阅读数 35

评论数 0

原创 [剑指 offer]--位运算--面试题15. 二进制中1的个数

1 题目描述 请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。 示例 1: 输入:00000000000000000000000000001011 输出:3 解释:输入的二进...

2020-04-07 12:57:08

阅读数 22

评论数 0

原创 [剑指 offer]--排序--面试题45. 把数组排成最小的数

1 题目描述 2 解题思路 方法:自定义排序 此题求拼接起来的 “最小数字” ,本质上是一个排序问题。 排序判断规则: 设 nums 任意两数字的字符串格式 x 和 y ,则若拼接字符串 x+y>y+x ,则 m>n ;反之,若 x+y<y+x ,则 n<m ; 根据...

2020-04-07 11:08:03

阅读数 13

评论数 0

原创 [剑指 offer]--数组--面试题04. 二维数组中的查找

1 题目描述 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/probl...

2020-04-06 22:15:41

阅读数 14

评论数 0

原创 [剑指 offer]--数组--面试题29. 顺时针打印矩阵

1 题目描述 2 解题思路 根据题目示例 matrix = [[1,2,3],[4,5,6],[7,8,9]] 的对应输出 [1,2,3,6,9,8,7,4,5] 可以发现,顺时针打印矩阵的顺序是 “从左向右、从上向下、从右向左、从下向上” 循环。 因此,考虑设定矩阵的“左、上、右、下”四个...

2020-04-06 11:43:03

阅读数 9

评论数 0

原创 [剑指 offer]--数组--面试题53 - I. 在排序数组中查找数字 I

1 题目描述 统计一个数字在排序数组中出现的次数。 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 示例 2: 输入: nums = [5,7,7,8,8,10], target = 6 输出: 0 限制:0 <= 数组长度 <= ...

2020-04-05 18:15:49

阅读数 12

评论数 0

原创 [剑指 offer]--数组--面试题53 - II. 0~n-1中缺失的数字

1 题目描述 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 示例 1: 输入: [0,1,3] 输出: 2 示例 2: 输入: [0,1,2,3,4,5,6,7,9] 输出:...

2020-04-05 18:11:50

阅读数 10

评论数 0

原创 [剑指 offer]--数组--面试题03. 数组中重复的数字

1 题目描述 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入: [2, 3, 1, 0, 2, 5, 3] 输出:2...

2020-04-05 16:57:26

阅读数 11

评论数 0

原创 [剑指 offer]--堆--面试题41. 数据流中的中位数

1 题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 例如, [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 + 3) / ...

2020-04-03 18:26:05

阅读数 33

评论数 0

原创 [剑指 offer]--堆--面试题40. 最小的k个数

1 题目描述 输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 示例 1: 输入:arr = [3,2,1], k = 2 输出:[1,2] 或者 [2,1] 示例 2: 输入:arr = [0,1,2,1...

2020-04-03 12:55:25

阅读数 30

评论数 0

原创 [剑指 offer]--栈--面试题59 - II. 队列的最大值

1 题目描述 请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。 若队列为空,pop_front 和 max_value 需要返回 -1 示例 1: 输入: [“MaxQueue...

2020-04-03 11:55:18

阅读数 14

评论数 0

原创 [剑指 offer]--栈--面试题59 - I. 滑动窗口的最大值

1 题目描述 2 解题思路 这是Java的一个笨办法,用的是两层循环实现 变量i, 用来进行外层循环,保证遍历了整个数组的元素,是nums.length - k + 1个 变量j,用来进行内层循环,构建临时数组, 临时数组,每次三个,设置循环结束条件j< k,这样每次就能产生三个数的一...

2020-04-03 11:09:14

阅读数 15

评论数 0

原创 [剑指 offer]--栈--面试题30. 包含min函数的栈

1 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。 示例: MinStack minStack = new MinStack(); minStack.push(-2); minStac...

2020-04-02 19:18:10

阅读数 36

评论数 0

原创 [剑指 offer]--栈--面试题09. 用两个栈实现队列

1 题目描述 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例 1: 输入: [“CQueue”,“appendTa...

2020-04-02 13:11:50

阅读数 15

评论数 0

原创 [LeetCode] 961. 重复 N 次的元素

1 题目描述 2 解题思路 方法 1:计数 直接计数元素的个数。利用 HashMap 或者数组,这里使用 HashMap。 然后,元素数量超过 1 的就是答案。 方法 2:比较 一旦找到一个重复元素,那么一定就是答案。我们称这个答案为主要元素。 考虑所有长度为 4 的子序列,在子序列中一...

2020-03-23 17:40:51

阅读数 14

评论数 0

原创 [LeetCode] 500. 键盘行

1 题目描述 给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。 American keyboard 示例: 输入: [“Hello”, “Alaska”, “Dad”, “Peace”] 输出: [“Alaska”, “Dad”] 注意: 你可以重复使用键盘上同...

2020-03-23 16:51:13

阅读数 16

评论数 0

原创 [LeetCode] 1365. 有多少小于当前数字的数字

1 题目描述 给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。 换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。 以数组形式返回答案。 示例 1: 输...

2020-03-23 16:47:34

阅读数 15

评论数 0

转载 [LeetCode] 只需一个“状态机”,分分钟解决六道买卖股票问题

121. 买卖股票的最佳时机➕122. 买卖股票的最佳时机 II➕ 123. 买卖股票的最佳时机 III➕188. 买卖股票的最佳时机 IV➕309. 最佳买卖股票时机含冷冻期 ➕ 714. 买卖股票的最佳时机含手续费

2020-03-22 18:01:46

阅读数 40

评论数 0

原创 [LeetCode] 123. 买卖股票的最佳时机 III

1 题目描述 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [3,3,5,0,0,3,1,4] 输出: 6 解...

2020-03-22 11:19:33

阅读数 11

评论数 0

原创 [LeetCode] 945. 使数组唯一的最小增量

1 题目描述 给定整数数组 A,每次 move 操作将会选择任意 A[i],并将其递增 1。 返回使 A 中的每个值都是唯一的最少操作次数。 示例 1: 输入:[1,2,2] 输出:1 解释:经过一次 move 操作,数组将变为 [1, 2, 3]。 示例 2: 输入:[3,2,1,2,1,7]...

2020-03-22 09:54:07

阅读数 11

评论数 0

原创 [Java程序员面试笔记] 面试笔试部分 --多线程

纯手敲整理的来自于机械工业出版社 由杨峰、往南方向编著的《Java程序员面试笔记》一书第二部分第十二章多线程部分的知识点和经典例题,作为个人笔记使用, 侵权删贴。

2020-03-21 12:03:52

阅读数 42

评论数 0

原创 “智源论文Live丨学术论文写作专题报告会” -- 记录笔记

2020-03-19 20:53:04

阅读数 33

评论数 0

原创 409. 最长回文串

1 题目描述 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。 在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。 注意: 假设字符串的长度不会超过 1010。 示例 1: 输入: “abccccdd” 输出: 7 解释: 我们可以构造的最长的...

2020-03-19 11:31:55

阅读数 20

评论数 0

原创 [LeetCode] 130. 被围绕的区域

1 题目描述 给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(字母 O)。 找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。 示例: X X X X X O O X X X O X X O X X 运行你的函数后,矩阵变为: ...

2020-03-17 16:59:52

阅读数 15

评论数 0

原创 [LeetCode] 695. 岛屿的最大面积

1 题目描述 给定一个包含了一些 0 和 1 的非空二维数组 grid 。 一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代...

2020-03-17 16:57:25

阅读数 23

评论数 0

原创 [LeetCode] 200. 岛屿数量

1 题目描述 给定一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 示例 1: 输入: 11110 11010 11000 00000 输出: 1...

2020-03-17 16:54:04

阅读数 16

评论数 0

原创 [LeetCode] 784. 字母大小写全排列

1 题目描述 给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。 示例: 输入: S = “a1b2” 输出: [“a1b2”, “a1B2”, “A1b2”, “A1B2”] 输入: S = “3z4” 输出: [“3z4”, “...

2020-03-13 16:36:10

阅读数 19

评论数 0

原创 [LeetCode] 17. 电话号码的字母组合

1 题目描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:“23” 输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]. ...

2020-03-13 15:55:10

阅读数 15

评论数 0

原创 [LeetCode] 401. 二进制手表

1 题目描述 二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59)。 每个 LED 代表一个 0 或 1,最低位在右侧。 例如,上面的二进制手表读取 “3:25”。 给定一个非负整数 n 代表当前 LED 亮着的数量,返回所有可能的时间。 案例:...

2020-03-13 15:48:21

阅读数 17

评论数 0

原创 [Java程序员面试笔记] 面试笔试部分 --面向对象

纯手敲整理的来自于机械工业出版社 由杨峰、往南方向编著的《Java程序员面试笔记》一书第二部分第十一章面向对象部分的知识点和经典例题,作为个人笔记使用, 侵权删贴。

2020-03-12 09:50:32

阅读数 15

评论数 0

原创 [LeetCode] 2. 两数相加

1 题目描述 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之...

2020-03-08 16:35:05

阅读数 14

评论数 0

原创 [LeetCode] 371. 两整数之和

1 题目描述 不使用运算符 + 和 - ​​​​​​​,计算两整数 ​​​​​​​a 、b ​​​​​​​之和。 示例 1: 输入: a = 1, b = 2 输出: 3 示例 2: 输入: a = -2, b = 3 输出: 1 来源...

2020-03-08 16:31:14

阅读数 11

评论数 0

原创 [LeetCode] 7. 整数反转

1 题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 ...

2020-03-07 15:41:54

阅读数 13

评论数 0

原创 [LeetCode] 190. 颠倒二进制位

1 题目描述 颠倒给定的 32 位无符号整数的二进制位。 示例 1: 输入: 00000010100101000001111010011100 输出: 00111001011110000010100101000000 解释: 输入的二进制串 00000010100101000001111010...

2020-03-07 11:35:33

阅读数 21

评论数 0

原创 [LeetCode] 389. 找不同

1 题目描述 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例: 输入: s = “abcd” t = “abcde” 输出: e 解释: ‘e’ 是...

2020-03-07 10:55:10

阅读数 16

评论数 0

提示
确定要删除当前文章?
取消 删除