1. 题目
读题
https://leetcode.cn/problems/jump-game/
考查点
这道题主要考查的是贪心算法的应用,
- 即在每一步选择最优的局部解,从而达到全局最优的目的。
- 贪心算法通常用于解决一些最优化问题,如最小生成树、单源最短路径、任务调度等。
-
2. 解法
思路
一个可能的解决方案是使用贪心算法,即每次选择能跳到最远的位置。具体步骤如下:
- 初始化一个变量maxReach,表示当前能跳到的最远位置,初始值为0。
- 遍历数组中的每个元素,对于每个元素i,更新maxReach为max(maxReach, i + nums[i]),即当前位置加上能跳的长度和之前的最远位置中的较大值。
- 如果maxReach >= nums.length - 1,说明能够到达最后一个下标,返回true。
- 如果i > maxReach,说明当前位置已经超过了能跳到的最远位置,无法继续前进,返回false。
具体实现
1 2 3 4 5 6 7 8 9 10 11 | class Solution { public boolean canJump( int [] nums) { int maxReach = 0 ; //当前能跳到的最远位置 for ( int i = 0 ; i < nums.length; i++) { if (maxReach >= nums.length - 1 ) return true ; //能够到达最后一个下标 if (i > maxReach) return false ; //当前位置超过了能跳到的最远位置 maxReach = Math.max(maxReach, i + nums[i]); //更新最远位置 } return false ; } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2019-04-29 Spring 框架用到的 9 个设计模式汇总!
2019-04-29 设计模式总结
2019-04-29 spring中的设计模式
2019-04-29 深入解析spring中用到的九种设计模式