Day32 贪心算法 part02 122. 买卖股票的最佳时机 II 55. 跳跃游戏 45. 跳跃游戏 II

贪心算法 part02 122. 买卖股票的最佳时机 II 55. 跳跃游戏 45. 跳跃游戏 II

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

思路:计算每天的利润,利润如果为正,加到结果中去

cpp 复制代码
class Solution {
private:
    int result =0;
public:
    int maxProfit(vector<int>& prices) {
        for(int i = 1;i<prices.size();i++){
            result+= (prices[i]-prices[i-1])>0?(prices[i]-prices[i-1]):0;
        }
        return result;
    }
};

55. 跳跃游戏

cpp 复制代码
class Solution {
private:
    int cover =0;
public:
    bool canJump(vector<int>& nums) {
        if(nums.size()==1) return true;//一个元素直接返回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

cpp 复制代码
class Solution {
public:
    int jump(vector<int>& nums) {
        int curDistance = 0;    // 当前覆盖的最远距离下标
        int ans = 0;            // 记录走的最大步数
        int nextDistance = 0;   // 下一步覆盖的最远距离下标
        for (int i = 0; i < nums.size() - 1; i++) { // 注意这里是小于nums.size() - 1,这是关键所在
            nextDistance = max(nums[i] + i, nextDistance); // 更新下一步覆盖的最远距离下标
            if (i == curDistance) {                 // 遇到当前覆盖的最远距离下标
                curDistance = nextDistance;         // 更新当前覆盖的最远距离下标
                ans++;
            }
        }
        return ans;
    }
};
相关推荐
周周记笔记13 小时前
学习笔记:第一个Python程序
笔记·学习
ChillJavaGuy14 小时前
常见限流算法详解与对比
java·算法·限流算法
散11214 小时前
01数据结构-01背包问题
数据结构
sali-tec14 小时前
C# 基于halcon的视觉工作流-章34-环状测量
开发语言·图像处理·算法·计算机视觉·c#
优雅鹅14 小时前
ARM、AArch64、amd64、x86_64、x86有什么区别?
arm开发·学习
..过云雨14 小时前
05.【Linux系统编程】进程(冯诺依曼体系结构、进程概念、进程状态(注意僵尸和孤儿)、进程优先级、进程切换和调度)
linux·笔记·学习
消失的旧时光-194314 小时前
Kotlinx.serialization 使用讲解
android·数据结构·android jetpack
咸甜适中14 小时前
rust语言 (1.88) egui (0.32.2) 学习笔记(逐行注释)(二十八)使用图片控件显示图片
笔记·学习·rust·egui
Gu_shiwww14 小时前
数据结构8——双向链表
c语言·数据结构·python·链表·小白初步
你怎么知道我是队长15 小时前
C语言---循环结构
c语言·开发语言·算法