代码随想录算法训练营第三十二天 | 122. 买卖股票的最佳时机 II、55. 跳跃游戏、45. 跳跃游戏 II
122. 买卖股票的最佳时机 II
题目链接:122. 买卖股票的最佳时机 II
- 局部最优:低值买入,高值卖出 (追涨杀跌)
- 总体最优:利润最高
- 动态规划法可能更加麻烦,贪心法可以更直观直接算出。
55. 跳跃游戏
题目链接:55. 跳跃游戏
- 局部最优:跳到一个当前步下跳过去后能跳到最远的点
- 总体最优:跳得最远,最远都没有到达终点,那么就返回false
- 使用一个变量 cover来存储能跳的最远值
- 还是要遍历每个节点
-
class Solution { public: bool canJump(vector<int>& nums) { int jumpLen = 0; for(int i = 0; i <= jumpLen && i < nums.size(); i++) { jumpLen = max(jumpLen, i + nums[i]); } return jumpLen >= nums.size() - 1; } };
45. 跳跃游戏 II
题目链接:45. 跳跃游戏 II
- 局部最优:跳到一个当前步下跳过去后能跳到最远的点
- 总体最优:跳得最远,最远都没有到达终点,那么就返回false
- 使用两个变量 curDistance,maxDistance,分别代表第一步和第二步能够走出的距离