leetcode 55. 跳跃游戏

2023.7.29

本题不用纠结于可以跳几步,可以聚焦于**覆盖范围,**即 当前位置+当前跳数 能够覆盖的范围,若这个范围足以到达最后一个位置,则返回true;若for循环结束,则还没返回true,则返回false。 下面看代码:

cpp 复制代码
class Solution {
public:
    bool canJump(vector<int>& nums) {
        int cover = 0;
        for(int i=0; i <= cover; i++)
        {
            if(i+nums[i] > cover) cover = i+nums[i];
            if(cover >= nums.size()-1) return true;
        }
        return false;
    }
};

ps:因为cover是覆盖范围,所以for循环的终止条件是i<=cover,最后一个位置是可以取到的。

相关推荐
一只鱼^_1 分钟前
牛客周赛 Round 105
数据结构·c++·算法·均值算法·逻辑回归·动态规划·启发式算法
是阿建吖!2 分钟前
【动态规划】斐波那契数列模型
算法·动态规划
ikkkkkkkl3 分钟前
C++设计模式:面向对象设计原则
c++·设计模式·面向对象
啊阿狸不会拉杆30 分钟前
《算法导论》第 27 章 - 多线程算法
java·jvm·c++·算法·图论
重启的码农36 分钟前
ggml介绍 (8) 图分配器 (ggml_gallocr)
c++·人工智能·神经网络
火车叨位去194936 分钟前
力扣top100(day04-05)--堆
算法·leetcode·职场和发展
数据智能老司机37 分钟前
面向企业的图学习扩展——面向图的传统机器学习
算法·机器学习
重启的码农37 分钟前
ggml介绍 (9) 后端调度器 (ggml_backend_sched)
c++·人工智能·神经网络
类球状1 小时前
顺序表 —— OJ题
算法
Miraitowa_cheems1 小时前
LeetCode算法日记 - Day 11: 寻找峰值、山脉数组的峰顶索引
java·算法·leetcode