leetcode题解-45. Jump Game II
来源:互联网 发布:淘宝达人更改头像 编辑:程序博客网 时间:2024/05/16 14:46
题目:
Given an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your maximum jump length at that position.Your goal is to reach the last index in the minimum number of jumps.For example:Given array A = [2,3,1,1,4]The minimum number of jumps to reach the last index is 2. (Jump 1 step from index 0 to 1, then 3 steps to the last index.)Note:You can assume that you can always reach the last index.
本题的目的是寻找到达数组末尾的最小跳数,一种比较简单的思路是使用一个变量记录当前可以到达的最远距离,每当走到了最远距离处,都把步数加一,然后每遍历一个数都要将该变量的值进行更新即可。这也就是所谓的贪婪法,我们总是想走到最远的地方知道没有办法才将步数加一。代码入下:
public int jump(int[] A) { int jumps = 0, curEnd = 0, curFarthest = 0; for (int i = 0; i < A.length - 1; i++) { curFarthest = Math.max(curFarthest, i + A[i]); if (i == curEnd) { jumps++; curEnd = curFarthest; } } return jumps; }
另外一种思路就是使用BFS,深度优先遍历的方法,我们可以将题目转化为深度遍历到题目,如下,每一层是上一层所能达到的最远距离。这样我们就可以很方便的使用BFS来解:
2 3 1 1 4 , is2||3 1||1 4 ||
代码如下所示:
int jump2(int A[]) { if(A.length<2)return 0; int level=0,currentMax=0,i=0,nextMax=0; while(currentMax-i+1>0){ //nodes count of current level>0 level++; for(;i<=currentMax;i++){ //traverse current level , and update the max reach of next level nextMax=Math.max(nextMax,A[i]+i); if(nextMax>=A.length-1)return level; // if last element is in level+1, then the min jump=level } currentMax=nextMax; } return 0; }
阅读全文
0 0
- LeetCode 55. Jump Game and 45. Jump Game II 题解
- LeetCode 55. Jump Game & 45. Jump Game II题解
- leetcode题解-45. Jump Game II
- leetcode Jump Game II 题解
- LeetCode 题解(49): Jump Game II
- LeetCode 45 Jump Game II 题解
- LeetCode --- 45. Jump Game II
- LeetCode 45.Jump Game II
- [Leetcode] 45. Jump Game II
- [leetcode] 45.Jump Game II
- [leetcode] 45.Jump Game II
- leetcode 45. Jump Game II
- LeetCode 45. Jump Game II
- LeetCode 45. Jump Game II
- leetcode.45. Jump Game II
- leetcode 45. Jump Game II
- leetcode 45. Jump Game II
- [LeetCode] 45. Jump Game II
- python网络数据采集学习笔记-前言
- Json数据,在前台+后台
- 模型构建器之添加字段
- android学习杂记.11
- 商城规格解决方法 ----笛卡尔积
- leetcode题解-45. Jump Game II
- HEXO安装(Win7 64 bit ),遇到cmd报错:'hexo' 不是内部或外部命令,也不是可运行的程序
- core核心模块--输入输出XML和YAML文件
- git学习四:eclipse使用git提交项目
- Git 解除上传文件大小的限制
- struts2+hibernate+spring注解版框架搭建以及简单测试(方便脑补)
- 反汇编引擎diStorm3
- Fragment与Android架构
- 哈希表线性探测&二次探测