【Leetcode】Jump Game 1,2
来源:互联网 发布:ubuntu 商业版 编辑:程序博客网 时间:2024/05/29 19:38
【题目】
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.)
【思路】
贪心算法
【代码】
public int jump(int[] A) {int step_count = 0;int last_jump_max = 0;int current_jump_max = 0;for(int i=0; i<A.length-1; i++) { current_jump_max = Math.max(current_jump_max, i+A[i]); if( i == last_jump_max ) { step_count++; last_jump_max = current_jump_max; } }return step_count;
}
BFS方法
I try to change this problem to a BFS problem, where nodes in level i are all the nodes that can be reached in i-1th jump. for example. 2 3 1 1 4 , is 2|| 3 1|| 1 4 ||
clearly, the minimum jump of 4 is 2 since 4 is in level 3. my ac code.
int jump(int A[], int n) { if(n<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=max(nextMax,A[i]+i); if(nextMax>=n-1)return level; // if last element is in level+1, then the min jump=level } currentMax=nextMax; } return 0; }
【题目 jump game】
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.
Determine if you are able to reach the last index.
For example:
A = [2,3,1,1,4]
, return true
.
A = [3,2,1,0,4]
, return false
.
【代码】
public boolean canJump(int[] A) { int len=A.length; int ability=A[0];//the farmost grid index that can be reached for(int i=1;i<len;i++) { if(ability<i)//cannot reach beyond current grid by any means, return false return false; //update ability using the bigger grid index that can be reached ability=ability>i+A[i]?ability:i+A[i]; } //loop finished, the last grid can be reached return true;}
- 【Leetcode】Jump Game 1,2
- leetcode 55|45. Jump Game 1|2
- leetcode c++ jump game 2
- LeetCode Jump Game && Jump GameII
- [LeetCode]Jump Game II、Jump Game
- 【LeetCode】Jump Game & Jump Game II
- leetcode Jump Game & Jump Game II
- leetcode之Jump Game && Jump Game II
- [leetcode]Jump Game &&Jump Game II
- 【LeetCode】Jump Game && Jump Game II
- [Leetcode]Jump Game && Jump Game II
- Leetcode之Jump Game & Jump Game II
- Jump Game 和Jump Game II---LeetCode
- LeetCode-Jump Game & Jump Game II
- 【Leetcode】【python】Jump Game/Jump Game II
- LeetCode: Jump Game
- LeetCode: Jump Game II
- LeetCode Jump Game
- Web前端和后端
- 基于curl实现登录页面数据采集(百度搜藏版)
- VS2008配置SVN
- 日经春秋 20150826
- jquery制作banner图片左右上下切换滚动特效
- 【Leetcode】Jump Game 1,2
- 网易新闻iOS版使用的18个开源组件
- 分布式数据库集群中间件------为什么选择MySQL
- 日经社説 20150826 ネット国勢調査を円滑に
- Learning C/C++
- 内部类的实例化
- jxl(Java Excel API) 使用方法 【2】
- 常规功能和模块自定义系统(cfcmms)—003概述
- Thread之Exchanger