LeetCode热题100 跳跃游戏

题目描述

给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。

示例 1:

输入 :nums = 2,3,1,1,4
输出 :true
解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。

示例 2:

输入 :nums = 3,2,1,0,4
输出 :false
解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。

提示:

1 <= nums.length <= 10410^4104

0 <= numsi <= 10510^5105

思路

我们可以每次迭代更新可以到达的最大值,如果此时迭代到i,最大值是i-1,那么答案就返回false,如果都能到,答案就是true。

代码

cpp 复制代码
class Solution {
public:
    bool canJump(vector<int>& nums) {
        int n = nums.size();
        int maxS = 0;
        for(int i = 0; i < n; ++i)
        {
            if(maxS < i)
            {
                return false;
            }
            maxS = max(maxS, i + nums[i]);
        }
        return true;
    }
};
相关推荐
aichitang2024几秒前
数论变换(NTT)
c++·算法·fft·ntt
_olone3 分钟前
AtCoder Beginner Contest 465 D - X to Y
c++·算法
青山木7 分钟前
Hot 100 --- LRU 缓存
java·数据结构·算法·leetcode·链表·缓存·哈希
“码”力全开7 分钟前
ONVIF摄像头接入项目实战记录
人工智能·算法·边缘计算
星夜夏空9920 分钟前
C++学习(3) —— C++输入输出流
c++·学习
CAU界编程小白21 分钟前
CAU抢课脚本
c++·脚本
MOONICK31 分钟前
windows原生条件变量支持
c++·windows
AI科技星36 分钟前
公理化数学化学|48小时确权终稿(完整投产包)
人工智能·数学·算法·重构·拓扑学·乖乖数学·全域数学
汉克老师43 分钟前
GESP2026年6月认证C++二级( 第三部分编程题(1、完全平方数计数))精讲
c++·循环·枚举算法·gesp2级·平方数·逆向枚举·区间判断
wuminyu43 分钟前
markword在高并发场景下变化剖析
java·linux·c语言·jvm·c++