摘要:
55. 跳跃游戏 LeetCode题目要求 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 示例 输入:nums = [2,3,1,1,4] 输出:true 解释:可以先跳 1 步,从下标 0 阅读全文
摘要:
122. 买卖股票的最佳时机 II LeetCode题目要求 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。 返回 你能获得的 最 阅读全文
摘要:
53. 最大子数组和 LeetCode题目要求 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 示例 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解释:连续子数组 [4,- 阅读全文
摘要:
376. 摆动序列 LeetCode题目要求 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。 例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, 阅读全文
摘要:
455. 分发饼干 LeetCode题目要求 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以 阅读全文
摘要:
[回溯总结] 回溯是递归的副产品,有递归就会有回溯; 回溯法经常和二叉树遍历,深度优先搜索混在一起,因为这两种方式都是用了递归。 回溯法就是暴力搜索,并不是什么高效的算法,最多再剪枝一下。 回溯算法能解决如下问题: 组合问题:N个数里面按一定规则找出k个数的集合 排列问题:N个数按一定规则全排列,有 阅读全文
摘要:
47. 全排列 II LeetCode题目要求 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例 输入:nums = [1,1,2] 输出: [[1,1,2], [1,2,1], [2,1,1]] 解题思路 类似全排列,这里存在重复元素,关键在于对去重的处理:if 阅读全文
摘要:
46. 全排列 LeetCode题目要求 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 解题思路 阅读全文
摘要:
491. 递增子序列 LeetCode题目要求 给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。 示例 1 输入:nums = [4,6 阅读全文
摘要:
90. 子集 II LeetCode题目要求 给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。 示例 输入:nums = [1,2,2] 输出:[[],[1],[1,2],[1,2,2] 阅读全文