代码随想录算法训练营第三十二天|122. 买卖股票的最佳时机 II、55. 跳跃游戏、45. 跳跃游戏 II

代码随想录刷题03.13

贪心算法2

LeetCode题目

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

解题思路

本题(贪心算法)思路:

1)只有一个股价数组,数组中的元素就是利用for循环制造的单体个例;

2)局部最优思路:股价隔天相减,只收集其中的正收益(累加后得到全局收益)。

代码过程
class Solution {
public:
    int result=0;
    int maxProfit(vector& prices) {
        for(int i=1;i

LeetCode题目

55. 跳跃游戏

解题思路

1.本题的贪心思路:

1)本题的个例单体:数组中的元素;

2)本题的局部最优:每个元素取最大跳跃步数(取最大覆盖范围);

3)整体优解:最大覆盖范围达到或超过最后一个元素的位置。

**注意:**贪心算法只是一种思维,不是具体的解题方法,具体的解题方法会有很多的细节需要打磨。

代码过程
class Solution {
public:
    bool canJump(vector& nums) {
        if(nums.size()<=1)return true;
        int cover=nums[0];
        for(int i=0;i<=cover;i++)
        {
            cover=max(i+nums[i],cover);
            cout<=(nums.size()-1))return true;
        }
        return false;
    }
};

LeetCode题目

45. 跳跃游戏 II

解题思路

1.if语句在for循环语句中可以起到一个断点定位判断的作用。

2.分析代码时,要找关键语句分析这是一个怎么样的数据变化场景。本题的关键语句是:

for(int i=0;i nextdistance=max(nextdistance,nums[i]+i);

代码过程
class Solution {
public:
    int jump(vector& nums) {
        int curdistance=0;
        int nextdistance=0;
        int result=0;
        for(int i=0;i= nums.size() - 1) break; 
                }else break;
            }
        }
        return result;
    }
};

你可能感兴趣的:(算法,游戏,leetcode)