122.买卖股票的最佳时机II
class Solution {
public:int maxProfit(vector<int>& prices) {int earn=0;for(int i = 0; i < prices.size()-1;i++){int x = prices[i + 1] - prices[i];if(x>=0){earn+=x;}}return earn;}
};
55.跳跃游戏
本题关键在于看覆盖的范围
利用for循环中的i<=cover来在覆盖范围中搜寻
不断更新cover,直到cover能覆盖所有nums否则false
class Solution {
public:bool canJump(vector<int>& nums) {int cover = 0;if(nums.size()==1){return true;}for(int i=0; i<=cover; i++){cover = max(i + nums[i], cover);if(cover>=nums.size()-1){return true;}}return false;}
};
45.跳跃游戏II
class Solution {
public:int jump(vector<int>& nums) {if(nums.size()==1)return 0;int curDistance = 0;int ans = 0;int nextDistance = 0;for(int i = 0; i < nums.size();i++){nextDistance = max(nums[i] + i, nextDistance);if(i==curDistance){ans++;curDistance = nextDistance;if(nextDistance >=nums.size()-1)break;}}return ans;}
};