【代码随想录算法训练Day32】LeetCode 122 买卖股票的最佳时机 II、LeetCode 55.跳跃游戏、LeetCode 45.跳跃游戏II

Day32 贪心第二天

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

思路真是无比巧妙,把区间利润拆成每天的利润,其实就是算出每天的利润,然后只取其中的正值即可。

在代码中计算是否计算加时还与0取最大值,相当于大于0才加入。

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

LeetCode 55.跳跃游戏

本题的关键在于不再纠结我们如何跳,而是一直考虑最远能跳到哪里,也就是跳跃的覆盖范围,如果覆盖范围大于等于最后一个元素的下标,那就是能跳到,否则就跳不到了。

cpp 复制代码
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(cover,i+nums[i]);
            if(cover>=nums.size()-1)
                return true;
        }
        return false;
    }
};

LeetCode 45.跳跃游戏II

本题的关键在于每次跳跃时都取能让跳跃覆盖范围变得更大的下一跳,而且我们也不用考虑应该怎么跳,只需要增加每一步能扩展的最大范围即可,只要范围比大于等于末尾元素的下标,那就成功了。

cpp 复制代码
class Solution {
public:
    int jump(vector<int>& nums) {
        if(nums.size()==1) return 0;
        int cur=0,next=0,res=0;
        for(int i=0;i<nums.size();i++){
            next=max(next,nums[i]+i);
            if(i==cur){
                if(cur!=nums.size()-1){
                    res++;
                    cur=next;
                    if(cur>=nums.size()-1)
                        break;
                }
                else break;
            }
        }
        return res;
    }
};

接下来是思维的考验了。

相关推荐
y1su18 分钟前
Leetcode 字符串模板
java·数据结构·算法·leetcode·职场和发展·动态规划
residual_fan1 小时前
船用柴油机动态机动工况故障诊断:控制感知仿射网络(CAAN)的技术实现
人工智能·算法·数据挖掘·数据分析
其实防守也摸鱼1 小时前
Cylab在线靶场——CTF中的通用技能
linux·数据库·学习·算法·靶场·ctf·学习网络安全
蓝悦无人机2 小时前
《Planning algorithms》读书笔记——第8章 反馈运动规划
算法·读书笔记·反馈运动规划
RaaS1002 小时前
Agent Skills 进了 Linux Foundation:2.8 亿次安装,但装 skill 还没有安全规范
人工智能·算法·架构
CV爱数码2 小时前
CT 重建从零开始(五):ASTRA Toolbox 上手——几何、投影器与算法
图像处理·算法·计算机视觉·ct
TunerT_TQ2 小时前
超立方体Ramsey(openai/math 家族171)H11攻坚日志|D60–D69:Star分组重数、二幂坐标群、奇偶入射语义与Site‑Level候选计数形式化闭环
算法
Rabitebla3 小时前
【系统性学习笔记】Linux 权限篇(二):文件属性、权限修改与目录权限的底层逻辑
linux·c++·笔记·学习·算法
远离UE43 小时前
半拉格朗日学习笔记 动力学 实时渲染
人工智能·算法
小郎君6583 小时前
MPTT 不是万能编号:一棵百万节点树的增删改与批量事务
算法