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 分钟前
2025.12.11 力扣每日一题
数据结构·算法·leetcode
一碗白开水一2 分钟前
【论文阅读】Denoising Diffusion Probabilistic Models (DDPM)详细解析及公式推导
论文阅读·人工智能·深度学习·算法·机器学习
代码游侠7 分钟前
学习笔记——进程
linux·运维·笔记·学习·算法
天赐学c语言10 分钟前
12.11 - 最长回文子串 && main函数是如何开始的
c++·算法·leetcode
deng-c-f11 分钟前
C/C++内置库函数(4):c++左右值及引用的概念、move/forward的使用
c语言·开发语言·c++
CoovallyAIHub11 分钟前
AI模型训练有哪些关键步骤与必备工具?从概念到可运行的智能模型
深度学习·算法·计算机视觉
程序员-King.15 分钟前
day122—二分查找—完成旅途的最少时间(LeetCode-2187)
算法·leetcode·二分查找·双指针
暗之星瞳16 分钟前
线性回归+实例
算法·回归·线性回归
little~钰16 分钟前
整体二分——上
算法
Swift社区22 分钟前
LeetCode 447 - 回旋镖的数量
linux·算法·leetcode