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;
    }
};
相关推荐
bqq198610267 分钟前
MySQL分库分表
数据结构·mysql
迷途之人不知返11 分钟前
List的模拟实现
数据结构·c++·学习·list
Chat_zhanggong34541 分钟前
主推NT98336BG作用有哪些?
嵌入式硬件·算法
Run_Teenage1 小时前
算法:线段树
算法
Westward-sun.1 小时前
YOLOv2算法全方位解析:从BatchNorm到聚类先验框的九大改进
算法·yolo·聚类
扶苏xw1 小时前
【离散化算法】
算法
码之气三段.1 小时前
Codeforces Round 1095 (Div. 2) 补题
算法
6Hzlia1 小时前
【Hot 100 刷题计划】 LeetCode 189. 轮转数组 | C++ 三次反转经典魔法 (O(1) 空间)
c++·算法·leetcode
wuweijianlove1 小时前
算法可扩展性建模与渐进性能分析的技术7
算法
shehuiyuelaiyuehao2 小时前
算法14,滑动窗口,找到字符串中所有字母异位词
算法