055 Jump Game 跳跃游戏
2024-08-29 03:31:31
给定一个非负整数数组,您最初位于数组的第一个索引处。
数组中的每个元素表示您在该位置的最大跳跃长度。
确定是否能够到达最后一个索引。
示例:
A = [2,3,1,1,4],返回 true。
A = [3,2,1,0,4],返回 false。
详见:https://leetcode.com/problems/jump-game/description/
Java实现:
方法一:
class Solution {
public boolean canJump(int[] nums) {
int n=nums.length;
// maxJump是维护的当前能跳到的最大位置
int maxJump=0;
for(int i=0;i<n;++i){
// i>maxJump表示无法到达i的位置,失败
// maxJump >= (n - 1),此时的距离已经足够到达终点,成功
if(i>maxJump||maxJump>=(n-1)){
break;
}
// nums[i]+i当前跳最远距离 maxJump为i之前跳最远距离
maxJump=maxJump>(i+nums[i])?maxJump:(i+nums[i]);
}
return maxJump>=(n-1);
}
}
方法二:
class Solution {
public boolean canJump(int[] nums) {
int n=nums.length;
// dp[i]表示当前跳跃的最大距离
int[] dp=new int[n];
dp[0]=nums[0];
// i表示当前距离,也是下标
for(int i=1;i<n;++i){
// i点可达
if(i<=dp[i-1]){
dp[i]=dp[i-1]>(nums[i]+i)?dp[i-1]:(nums[i]+i);
}else{
dp[i]=dp[i-1];
}
}
return dp[n-1]>=(n-1);
}
}
参考:https://blog.csdn.net/mine_song/article/details/69791029
最新文章
- selenium处理select标签的下拉框
- html table动态合并单元格 js方法
- [转载]ExtJs4 笔记(4) Ext.XTemplate 模板
- thinkphp中模块和操作映射
- 【3】Bootstrap的下载和目录结构
- 使用cocoapods管理第三方类库
- Day14 html简介
- MyEclipse java was started but returned exit code=-1
- 【JAVAWEB学习笔记】23_Listener和邮箱服务器
- mysql互换表中两列数据
- C#常用单元测试框架比较:XUnit, NUnit, 和 Visual Studio(MSTest)
- API创建员工
- hbase的api操作之过滤器
- numpy 中 shape_base提供的tile方法
- pipenv 方便的python 开发工作流工具
- CentOS 6(64-bit) + Nginx搭建静态文件服务器
- 如何在Mac OS中安装 wget
- 64位Ubuntu 安装scrapy遇到的问题
- MyBatis(2)增删改查
- 流畅的python第一章python数据模型学习记录