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

Leetcode 55 跳跃游戏

题意理解

         非负整数数组 nums,

   最初位于数组的 第一个下标 。

         数组中的每个元素代表你在该位置可以跳跃的最大长度。

        需要跳到nums最后一个元素即为成功。

        目标:是否能够跳到最后一个元素。

解题思路

        使用贪心算法来解题,需要理解局部解和最优解的关系。

        这里引入一个覆盖区间的概念,覆盖区间表示所有可达的位置

        覆盖区间覆盖到最后一个元素时,即为最后一个位置可达。

        

        局部最最优解:当前位置尽可能到达足够远的位置,逐步探索可到达的最远位置能否覆盖到最后一个元素。

        

结束的位置是能探索到的最远位置。

例1:最开始的最远距离是nums[2], 在[0,2]之间探索,最远到达nums[4],即能到达最远的位置。

1.贪心解题

我们用一个cover表示最远可到达的位置。cover随着探索会不断往后移,直到最远可达位置。

注意: i+nums[i]表达当前可达的最远位置的下标。

public boolean canJump(int[] nums) {if(nums.length==1) return true;//一个位置一定可达int cover=0;for(int i=0;i<=cover;i++){//i+nums[i]表示当前位置可达的最远距离的坐标cover=Math.max(cover,i+nums[i]);//最后一个位置是否可达if(cover>=nums.length-1) return true;}return false;}

2.分析

时间复杂度:O(n)

空间复杂度:O(n)

n表示输入数组的长度。

http://www.lryc.cn/news/264661.html

相关文章:

  • 构建陪诊预约系统:技术实战指南
  • windows和linux将文件删除至回收站【C++】【Go】语言实现
  • 10 Vue3中v-html指令的用法
  • 华为数通方向HCIP-DataCom H12-831题库(多选题:181-200)
  • DC-磁盘管理
  • 使用Docker运行镜像文件与设置端口
  • Centos 8.5 Oracle12c安装
  • Apache Tomcat httpoxy 安全漏洞 CVE-2016-5388 已亲自复现
  • ChatGLM3-6B 的调用参数说明,chat 与stream_chat 接口函数的参数说明
  • Vuex的学习-2
  • 智慧安防视频监控EasyCVR如何通过回调接口向第三方平台推送RTSP视频通道离线通知
  • Scrum项目管理流程及免费敏捷工具
  • 大型医院PACS系统源码,影像存储与传输系统源码,支持多种图像处理及三维重建功能
  • HDFS NFS Gateway(环境配置,超级详细!!)
  • nginx 离线安装 https反向代理
  • Linux Centos 配置 Docker 国内镜像加速
  • 中心下标-----来自力扣
  • 手写单链表(指针)(next域)附图
  • 关于with torch.no_grad:的一些小问题
  • 大创项目推荐 深度学习 机器视觉 人脸识别系统 - opencv python
  • 【PostGIS】空间数据库-常用空间函数
  • 程序员的50大JVM面试问题及答案
  • 架构设计系列之前端架构和后端架构的区别和联系
  • UE5 水材质注意要点
  • 数据安全扫描仪荣膺网络安全优秀创新成果大赛优胜奖 - 凸显多重优势
  • 数据结构学习 leetcode64最小路径和
  • 导出(导入)Linux虚拟机并修改IP地址
  • OpenCV4工业缺陷检测的六种方法
  • ICC2:Less than minimum edge length和Concave convex edge enclosure
  • RouterSrv-DHCP