122. 买卖股票的最佳时机 II

只要比前一天有利润则卖掉

 1 class Solution {
 2 public:
 3     int maxProfit(vector<int>& prices) {
 4         int result = 0;
 5         for(int i = 1; i < prices.size(); i++){
 6             if(prices[i] > prices[i-1]){
 7                 result += prices[i] - prices[i-1];
 8             }
 9         }
10         return result;
11     }
12 };

55. 跳跃游戏

计算覆盖范围,从0遍历到这个范围最后,如果范围包含最后一个元素,则为true

 1 class Solution {
 2 public:
 3     bool canJump(vector<int>& nums) {
 4         if(nums.size() <= 1)    return true;
 5         int cover = 0;
 6         for(int i = 0; i <= cover; i++){
 7             cover = max(cover,i + nums[i]);
 8             if(cover >= nums.size() - 1)    return true;
 9         }
10         return false;
11     }
12 };

45. 跳跃游戏 II

 1 class Solution {
 2 public:
 3     int jump(vector<int>& nums) {
 4         if(nums.size() == 1)    return 0;
 5         int cur_max = 0;
 6         int result = 0;
 7         int next_max = 0;
 8         for(int i = 0; i < nums.size(); i++){
 9             next_max = max(i + nums[i],next_max);
10             if(i == cur_max){
11                 result ++;
12                 cur_max = next_max;
13                 if(cur_max >= nums.size() - 1)  break;
14             }
15         }
16         return result;
17     }
18 };