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;
    }
};
相关推荐
余瑜鱼鱼鱼1 天前
Java数据结构:从入门到精通(十一)
数据结构
码农小韩1 天前
基于Linux的C++学习——循环
linux·c语言·开发语言·c++·算法
CoderCodingNo1 天前
【GESP】C++五级/四级练习(双指针/数学) luogu-P1147 连续自然数和
开发语言·c++·算法
颜酱1 天前
前端算法必备:双指针从入门到很熟练(快慢指针+相向指针+滑动窗口)
前端·后端·算法
Wect1 天前
LeetCode 274. H 指数:两种高效解法全解析
算法·typescript
Q741_1471 天前
海致星图招聘 数据库内核研发实习生 一轮笔试 总结复盘(2) 作答语言:C/C++ 哈夫曼编码 LRU
c语言·数据库·c++·算法·笔试·哈夫曼编码·哈夫曼树
Hello.Reader1 天前
PyFlink DataStream Operators 算子分类、函数写法、类型系统、链路优化(Chaining)与工程化踩坑
前端·python·算法
hweiyu001 天前
最短路径算法:Floyd-Warshall算法
算法
荒诞硬汉1 天前
数组常见算法
java·数据结构·算法
少许极端1 天前
算法奇妙屋(二十四)-二维费用的背包问题、似包非包问题、卡特兰数问题(动态规划)
算法·动态规划·卡特兰数·二维费用背包·似包非包