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

【LeetCode: 跳跃游戏】贪心算法

目 录

一、题目描述

二、题目解答

2.1 思路

2.2 代码

三、总结


一、题目描述

给你一个非负整数数组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 , 所以永远不可能到达最后一个下标。

二、题目解答

2.1 思路

最开始一看到题目就直接简单的想这不就遍历数组,遇到 0 就返回 false 就好了啊。但结果emm也是大错特错了。😢因为如果 0 前面的数字可以直接越过 0 呢?那不也能跳过去!所以我们要考虑到当前元素能跳跃到最远的元素下标为多少。

思路:1. 定义一个变量 maxJump,表示当前能达到的最远下标,初始值为 0

2. 遍历数组,若 i > maxJump,就说明该元素连当前位置都到达不了,所以直接返回false;否则就更新 maxJump 的值;最后对 maxJump 与数组最后一个元素下标比较,若大于等于就返回 true

3. 遍历结束,返回 true

接下来想说一下这个 maxJump 的值该怎样更新?我们知道 maxJump 表示的是最远下标,那么当我们更新 maxJump 时就不能只是把 nums[i] 和当前 maxJump 它俩之间取最大值!我们应该加上当前元素的下标,因为是从当前元素开始跳的,如果不加的话都默认是从 0 开始跳的了😁!我觉得这是一个很容易落下的点。

2.2 代码

class Solution { public boolean canJump(int[] nums) { int maxJump = 0; int n = nums.length; for(int i = 0; i < n; i++){ if(i > maxJump){ return false; }else{ maxJump = Math.max(i + nums[i],maxJump); } if(maxJump >= n-1){ return true; } } return true; } }

三、总结

今天通过这道题学到了看见题目不能想的太简单了,有好多小点容易忽略!😬

http://www.jsqmd.com/news/712439/

相关文章:

  • 从代码编写者到AI工程师:掌握LLM开发技术栈的实战指南
  • AgentCPM-Report实战案例:Pixel Epic助力初创企业3天完成融资BP撰写
  • Qwen3-4B-Thinking在法务助理场景的应用:合同审查要点生成案例
  • WASM替代Docker?Python 3.15轻量化部署实测对比:体积压缩92%,冷启耗时<87ms,你还在用传统容器吗?
  • BrainExplore框架:fMRI与AI结合的大脑视觉表征研究
  • 破解冠心病之谜:多种生物标志物与多因子检测技术的整合应用
  • 3步快速上手Revelation光影包:打造电影级Minecraft画面的完整指南
  • 3个简单步骤:用GHelper手动风扇控制告别ROG笔记本噪音困扰
  • macOS--brewhome安装镜像
  • 01基于 Jakarta EE开发 : Servlet + Thymeleaf图书管理系统
  • Go语言Slice切片底层原理深度解析
  • 在Windows上获得MacBook级别触控体验:开源驱动完全指南
  • Kimi-VL-A3B-Thinking一文详解:MoE架构+原生分辨率视觉编码器原理与部署
  • Phi-3.5-mini-instruct助力前端开发:JavaScript交互逻辑与文档生成
  • 2026年沃柑树苗公司怎么选:沃柑果苗/沃柑种苗/爱媛38果冻橙/四川春见耙耙柑/四川耙耙柑/广西武鸣沃柑/广西沃柑树苗/选择指南 - 优质品牌商家
  • 零代码使用SiameseAOE:Web界面操作详解与技巧
  • PHP函数怎样读取内存带宽实时数据_PHP监控DDR通道吞吐量【详解】
  • 多国站点利润分化加剧跨境卖家如何重新排优先级
  • AI编程助手安全防护:统一忽略文件生成器aiignore-cli实战指南
  • 小红书无水印下载终极指南:XHS-Downloader技术解析与实战应用
  • EdgeRemover:Windows系统Edge浏览器高效管理的一站式解决方案
  • 3分钟掌握:专业级3DS硬件检测工具使用全攻略
  • 内核级硬件信息伪装技术深度解析:EASY-HWID-SPOOFER实战指南
  • Linux系统启动优化利器boot-resume:原理、部署与实战
  • 规划型智能体:如何实现复杂任务的自主拆解与动态执行?
  • ChatGPT资源导航与开发实战:从原理到应用的全景指南
  • nli-MiniLM2-L6-H768应用场景:教育题库中题目与答案蕴含关系校验
  • 【含最新安装包】OpenClaw 一键部署超简单,零代码零基础一看就懂
  • 深度学习优化技术与神经科学预测模型实践
  • Aegis:轻量级应用安全防护与运行时监控框架实战指南