当前位置: 首页 > 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)

http://www.dtcms.com/a/200256.html

相关文章:

  • 分布式数据库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语言基础与函数式编程详解
  • Web3:Ubuntu系统 使用Docker-compose方式部署blockscout浏览器配置版本-v5.2.3-beta+charts图表
  • Web 技术与 Nginx 网站环境部署
  • 大数据hadoop小文件处理方案
  • CRMEB多商户预约服务上门师傅端
  • 可编辑98页PPT | 某大型制造业数字化转型战略规划项目方案
  • 使用PowerShell备份和还原Windows环境变量
  • vue2.0 组件生命周期
  • MYSQL故障排查和环境优化
  • 学习黑客 PowerShell 详解
  • 远程医疗结合贴肤芯片技术对体育院校学生提升运动表现的路径分析