LeetCode55 跳跃游戏

这个题的核心是贪心思想,关键在于计算可以到达的最远距离

如果可以到达某个位置,那么一定可以到达他前面的所有位置

cpp 复制代码
class Solution {
public:
    bool canJump(vector<int>& nums) {
        // 最远位置初始化
        int k=0;
        // 从初始位置出发,依次向后遍历
        // 注意:我们可以遍历的是当前最远位置及前面的位置,如果遍历到当前最远位置了,那么后续其他位置更不可能到达,无需遍历
        for(int i=0;i<nums.size() && i<=k;i++)
            // 更新最远位置的数据信息
            k=max(k,i+nums[i]);
        // 整个列表最远位置是长度减一
        if(k>=nums.size()-1) return true;
        else return false;
    }
};
相关推荐
手写码匠3 分钟前
手写 LLM 结构化输出引擎 —— 从 JSON Schema 约束到类型安全的数据提取
人工智能·深度学习·算法·aigc
zhiSiBuYu051710 分钟前
重排序(Rerank)提升检索准确率实战指南
开发语言·python·算法
月疯19 分钟前
华为手环的部分功能
算法
郭梧悠35 分钟前
算法:有效的括号
python·算法·leetcode
atunet36 分钟前
关于算法设计模式的演化与编程范式变迁的技术7
算法·设计模式
Jerry39 分钟前
LeetCode 27. 移除元素
算法
旖-旎44 分钟前
《LeetCode 1137 第N个泰波那契数 和 LeetCode 三步问题》
c++·算法·leetcode·动态规划
wabs6661 小时前
关于动态规划【力扣718.最长重复子数组的思考】
算法·leetcode·动态规划
技术小黑1 小时前
CNN算法实战系列08 | ResNeXt-50算法实战与猴痘病识别
人工智能·算法·cnn
Full Stack Developme1 小时前
Java 漏斗算法 及应用场景
java·开发语言·算法