博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
55. Jump Game
阅读量:4563 次
发布时间:2019-06-08

本文共 833 字,大约阅读时间需要 2 分钟。

思路:

对于数列里的每一个数,从头到尾扫一遍,每一个位置上的数能够达到最远的地方,就是这个位置加上这个位置可以走的最远的位置。

再维持一个目前为止的最大值,如果目前的位置已经超过了曾经有过的最大的值,那么就结束,返回false。

如果全局的最大值已经能够达到数列的末尾,那么就返回true。

 

1     public boolean canJump(int[] nums) { 2         if(nums == null || nums.length == 0) { 3             return false; 4         } 5         if(nums.length == 1) { 6             return true; 7         } 8         int[] res = new int[nums.length]; 9         res[0] = nums[0];10         int max = nums[0];11         for(int i = 1; i < nums.length; i++) {12             if(i > max) {13                 break;14             }15             res[i] = nums[i] + i;16             max = Math.max(res[i], max);17             if(max >= nums.length - 1) {18                 return true;19             }20         }21         return false;22     }

 

转载于:https://www.cnblogs.com/warmland/p/5240761.html

你可能感兴趣的文章
learnByWork
查看>>
Unity3D热更新之LuaFramework篇[04]--自定义UI监听方法
查看>>
lua 函数
查看>>
Git的基本命令
查看>>
四平方和
查看>>
第十八周 12.27-1.2
查看>>
Linux平台下java程序员的基本功(七)
查看>>
C# IP地址字符串和数值转换
查看>>
TCHAR和CHAR类型的互转
查看>>
常用界面布局
查看>>
C语言—— for 循环
查看>>
IBM lotus9.0测试版即将公测
查看>>
xml常用方法
查看>>
Cube Stacking(并差集深度+结点个数)
查看>>
AndroidStudio3更改包名失败
查看>>
jq 删除数组中的元素
查看>>
添加按键事件处理及事件处理的参数传递
查看>>
js URL中文传参乱码
查看>>
Leetcode 367. Valid Perfect Square
查看>>
UVALive 3635 Pie(二分法)
查看>>