LeetCode 55. 跳跃游戏

文章目录

一、题目

  给你一个非负整数数组 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 <= 104
  • 0 <= nums[i] <= 105

  点击此处跳转题目

二、C# 题解

  对每个能作为起跳点的格子都尝试跳跃,不断更新能跳到最远的距离 max,如果可以一直跳到最后,则成功。

csharp 复制代码
public class Solution {
    public bool CanJump(int[] nums) {
        int max = 0; // 记录能到达的最远位置
        for (int i = 0; i < nums.Length; i++) {
            if (i > max) return false;                   // 达不到该位置,返回 false
            max = i + nums[i] > max ? i + nums[i] : max; // 更新 max
        }
        return true;
    }
}
  • 时间:128 ms,击败 97.77% 使用 C# 的用户
  • 内存:60.8 MB,击败 47.40% 使用 C# 的用户
相关推荐
土司大王3 分钟前
LeetCode 17 电话号码的字母组合:Java 回溯模板、多叉决策树与复杂度分析
java·leetcode·决策树
不会就选b6 分钟前
数据结构之树&&二叉树(四)
数据结构·算法
hansang_IR9 分钟前
【题解】P4456 [CQOI2018] 交错序列(矩阵乘法)
c++·线性代数·算法
数模加油站15 分钟前
26数模国赛C题|思路第3弹【顶流思路+深度攻略】
算法·数学建模·数学建模竞赛·国赛·26国赛
geovindu19 分钟前
CSharp: Task Scheduler
开发语言·后端·c#·.net·.netcore
半亩码田29 分钟前
C#转Python第4.5篇:单元测试:pytest vs xUnit/NUnit
python·单元测试·c#
find1star38 分钟前
LeetCode 25:K 个一组翻转链表
java·数据结构·算法·leetcode·链表·职场和发展·动态规划
码流怪侠1 小时前
Sunshine 深度拆解:当 NVIDIA GameStream 闭源后,如何用 4 万颗 Star 重建自托管云游戏
游戏·github·nvidia
fujisheng6611 小时前
FUI 绑定生命周期实战:可靠解绑、失败回滚与列表项换绑
c#·unity3d
Bmob后端云1 小时前
Bmob后端云实战|Python给备忘录接入AI摘要、文本润色功能
算法·github