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# 的用户
相关推荐
yugi98783810 分钟前
基于最大信息熵的粒子群优化算法图像分割(MATLAB实现)
开发语言·算法·matlab
计算机安禾20 分钟前
【数据结构与算法】第40篇:图论(四):最短路径——Dijkstra算法与Floyd算法
c语言·数据结构·算法·排序算法·哈希算法·图论·visual studio
SccTsAxR23 分钟前
算法进阶:贪心策略证明全攻略与二进制倍增思想深度解析
c++·经验分享·笔记·算法
私人珍藏库28 分钟前
【Android】GameNative 0.9.0 [特殊字符] 手机畅玩Steam游戏
android·游戏·智能手机·app·工具·软件·多功能
2301_7926748629 分钟前
java学习day27(算法)
java·学习·算法
wanhengidc41 分钟前
云手机搬砖安全吗
大数据·运维·服务器·安全·游戏·智能手机
啦啦啦!41 分钟前
c++AI大模型接入SDK项目
开发语言·数据结构·c++·人工智能·算法
lcj251144 分钟前
【C语言】自定义类型1:结构体
c语言·开发语言·算法
wanhengidc1 小时前
服务器管理器的作用有哪些?
运维·服务器·网络·安全·游戏·智能手机
jaysee-sjc1 小时前
十七、Java 高级技术入门全解:JUnit、反射、注解、动态代理
java·开发语言·算法·junit·intellij-idea