随笔分类 -  LeetCode训练题集

摘要:题目描述: 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如:给定二叉树: [3,9,20,null,null,15,7], 返回其层次遍历结果: 第二种采用先序遍历递归,个人感觉代码更加简洁,但稍微难理解点。复杂度都是O(n) 利用depth变量记录当前在第几 阅读全文
posted @ 2019-04-20 17:41 小新猩 阅读(282) 评论(0) 推荐(0)
摘要:给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例 1: 阅读全文
posted @ 2019-04-04 20:59 小新猩 阅读(213) 评论(0) 推荐(0)
摘要:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 target)都是正整数。 解集不能包含重复的组合。 示例 1: 阅读全文
posted @ 2019-04-04 20:07 小新猩 阅读(184) 评论(0) 推荐(0)
摘要:给定两个二进制字符串,返回他们的和(用二进制表示)。 输入为非空字符串且只包含数字 1 和 0。 示例 1: 阅读全文
posted @ 2019-04-03 20:07 小新猩 阅读(300) 评论(0) 推荐(0)
摘要:第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。 返回载到每一个人所需的最小船数。(保证每个人都能被船载)。 示例 1: 阅读全文
posted @ 2019-04-02 15:33 小新猩 阅读(246) 评论(0) 推荐(0)
摘要:给定两个字符串, A 和 B。 A 的旋转操作就是将 A 最左边的字符移动到最右边。 例如, 若 A = 'abcde',在移动一次之后结果就是'bcdea' 。如果在若干次旋转操作之后,A 能变成B,那么返回True。 阅读全文
posted @ 2019-04-01 20:20 小新猩 阅读(306) 评论(0) 推荐(0)
摘要:给定两个大小相等的数组 A 和 B,A 相对于 B 的优势可以用满足 A[i] > B[i] 的索引 i 的数目来描述。 返回 A 的任意排列,使其相对于 B 的优势最大化。 示例 2: 阅读全文
posted @ 2019-03-31 21:10 小新猩 阅读(228) 评论(0) 推荐(0)
摘要:从正整数 N 开始,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零。 如果我们可以通过上述方式得到 2 的幂,返回 true;否则,返回 false。 示例 1: 我们知道,1个数乘以2就是将该数左移1位,而2的0次幂为1, 所以2的n次幂(就是2的0次幂n次乘以2)就是将1左 阅读全文
posted @ 2019-03-31 19:53 小新猩 阅读(195) 评论(0) 推荐(0)
摘要:有一个二维矩阵 A 其中每个元素的值为 0 或 1 。 移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。 在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。 返回尽可能高的分数。 示例: 提示: 解题思 阅读全文
posted @ 2019-03-31 13:15 小新猩 阅读(330) 评论(0) 推荐(0)
摘要:可以用数学的方法来解, 因为数字都是从1开始的连续自然数, 排列出现的次序可以推 算出来, 对于n=4, k=15 找到k=15排列的过程: 1 + 对2,3,4的全排列 (3!个) 2 + 对1,3,4的全排列 (3!个) 3, 1 + 对2,4的全排列(2!个) 3 + 对1,2... 阅读全文
posted @ 2019-03-29 21:33 小新猩 阅读(185) 评论(0) 推荐(0)
摘要:采用动态规划方法O(n) 设sum[i]为以第i个元素结尾且和最大的连续子数组。假设对于元素i,所有以它前面的元素结尾的子数组的长度都已经求得,那么以第i个元素结尾且和最大的连续子数组实际上,要么是以第i-1个元素结尾且和最大的连续子数组加上这个元素,要么是只包含第i个元素,即sum[i]=max( 阅读全文
posted @ 2019-03-29 20:09 小新猩 阅读(164) 评论(0) 推荐(0)
摘要:给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。 示例:给定如下二叉树,以及目标和 sum = 22, 返回: 阅读全文
posted @ 2019-03-26 21:29 小新猩 阅读(197) 评论(0) 推荐(0)
摘要:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2。 思 阅读全文
posted @ 2019-03-26 21:26 小新猩 阅读(213) 评论(0) 推荐(0)
摘要:给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 阅读全文
posted @ 2019-03-26 20:50 小新猩 阅读(186) 评论(0) 推荐(0)
摘要:一个前序遍历序列和一个中序遍历序列可以确定一颗唯一的二叉树。 根据前序遍历的特点, 知前序序列(PreSequence)的首个元素(PreSequence[0])为二叉树的根(root), 然后在中序序列(InSequence)中查找此根(root), 根据中序遍历特点, 知在查找到的根(root) 阅读全文
posted @ 2019-03-26 20:25 小新猩 阅读(264) 评论(0) 推荐(0)