给定一个非负整数数组,您最初位于数组的第一个索引处。
数组中的每个元素表示您在该位置的最大跳跃长度。
确定是否能够到达最后一个索引。
示例:
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

最新文章

  1. selenium处理select标签的下拉框
  2. html table动态合并单元格 js方法
  3. [转载]ExtJs4 笔记(4) Ext.XTemplate 模板
  4. thinkphp中模块和操作映射
  5. 【3】Bootstrap的下载和目录结构
  6. 使用cocoapods管理第三方类库
  7. Day14 html简介
  8. MyEclipse java was started but returned exit code=-1
  9. 【JAVAWEB学习笔记】23_Listener和邮箱服务器
  10. mysql互换表中两列数据
  11. C#常用单元测试框架比较:XUnit, NUnit, 和 Visual Studio(MSTest)
  12. API创建员工
  13. hbase的api操作之过滤器
  14. numpy 中 shape_base提供的tile方法
  15. pipenv 方便的python 开发工作流工具
  16. CentOS 6(64-bit) + Nginx搭建静态文件服务器
  17. 如何在Mac OS中安装 wget
  18. 64位Ubuntu 安装scrapy遇到的问题
  19. MyBatis(2)增删改查
  20. 流畅的python第一章python数据模型学习记录

热门文章

  1. sql中使用timestamp增量抽取数据
  2. mybatis进行分页,使用limit
  3. nginx rewrite 导致验证码不正确
  4. Java命名规范(简略)
  5. RT-Thread的线程(任务)处理 rt_thread_create/rt_thread_init区别
  6. 一行代码解决IE6/7/8/9/10兼容问题
  7. 四 Vue学习 router学习
  8. 怎样用win7电脑做无线路由
  9. 【何镇汐】-Web UI Util 框架
  10. poj3535 A+B (大数加法)