当前位置: 首页 > news >正文

55. 跳跃游戏

         

        在跳跃游戏中,判断能否到达最后一个下标的关键在于计算每个位置的最远可达距离。对于数组中的每个下标 i,其最远可达距离为 i + nums[i]。

        具体实现如下:遍历数组时,实时更新全局最远可达距离。若当前下标超出全局最远可达距离,说明无法到达该位置,返回 false;若成功遍历完数组且未出现上述情况,则说明可以到达最后一个下标,返回 true。

class Solution {
public:bool canJump(vector<int>& nums) {int n = nums.size();int mx = 0;//最右可达for (int i = 0; i < n;i++) {if (i > mx) {return false;}mx = max (mx,i + nums[i]);}return true;}
};

        或者你也可以理解为如果最右可达大于等于最后一个下标,说明可以到达

class Solution {
public:bool canJump(vector<int>& nums) {int n = nums.size();int mx = 0;//最右可达for (int i = 0; mx < n - 1;i++) {if (i > mx) {return false;}mx = max (mx,i + nums[i]);}return true;}
};

        时间复杂度:O(n),n为数组长度

        空间复杂度:O(1)

相关文章:

  • 分布式数据库TiDB:深度解析原理、优化与架构设计
  • windows使用ollama部署deepseek及qwen
  • 新能源汽车充电桩管理平台如何利用智慧技术优化资源配置问题?
  • UniApp 实现的文件预览与查看功能#三方框架 #Uniapp
  • Unity入门学习(三)3D数学(3)之Vector3类的介绍
  • kotlin flow的两种SharingStarted策略的区别
  • linux编译安装srs
  • Java(基础)day02 输入、输出、数组、重载、递归
  • 零基础设计模式——设计模式入门
  • SRS流媒体服务器(6)源码分析之推流篇
  • 范围管理的实践策略与创新应用
  • 博图1200硬件组态与启保停程序编写步骤详解
  • java的arraylist集合
  • 基于SpringBoot的家政预约系统
  • 鸿蒙 Background Tasks Kit(后台任务开发服务)
  • 全局配置文件
  • 如何确保低空经济中的数据安全?
  • Flink概述
  • 排序复习/下(C语言版)
  • Scala语言基础与函数式编程详解
  • 王楚钦球拍检测环节受损,国际乒联发声明
  • 上影节公布今年IMAX片单:暗涌、重生与感官的史诗
  • 墨海军训练舰在纽约撞桥,墨总统:对遇难者表示悲痛,将跟进调查
  • 古稀之年的设计家吴国欣:重拾水彩,触摸老上海文脉
  • AI赋能科学红毯,机器人与科学家在虚实之间叩问“科学精神”
  • 湖南4个县市区被确定为野生蘑菇中毒高风险区:中毒尚无特效解毒药