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,最后一个位置是可以取到的。

相关推荐
QxQ么么1 小时前
移远通信(桂林)26校招-助理AI算法工程师-面试纪录
人工智能·python·算法·面试
止观止3 小时前
C++20 Concepts:让模板错误信息不再“天书”
c++·c++20·编程技巧·模板编程·concepts
FL16238631293 小时前
ONNX RuntimeC++ 静态库下载安装和使用教程
开发语言·c++
Mz12213 小时前
day05 移动零、盛水最多的容器、三数之和
数据结构·算法·leetcode
SoleMotive.3 小时前
如果用户反映页面跳转得非常慢,该如何排查
jvm·数据库·redis·算法·缓存
誰能久伴不乏3 小时前
Linux文件套接字AF_UNIX
linux·服务器·c语言·c++·unix
念越4 小时前
判断两棵二叉树是否相同(力扣)
算法·leetcode·入门
豆豆plus4 小时前
C++实现文件操作类
开发语言·c++
complexor4 小时前
NOIP 2025 游记
数据结构·数学·动态规划·贪心·组合计数·树上问题·游记&总结