Leetcode 55 Jump Game && 45 Jump Game II
来源:互联网 发布:买书是淘宝还是亚马逊 编辑:程序博客网 时间:2024/06/06 03:23
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
.
基本思路:类似于加油站问题 每次往后走一步 步数减少 若当前位置跳数大于pos,则置换pos。若出现步数加上当前位置大于等于长度,则返回true。
public boolean canJump(int[] nums) { int pos = nums[0]; int len = nums.length-1; if(pos >= len)return true; if(pos == 0)return false; for (int i = 1; i <= len; i++) { if(pos == 0)return false; pos--;//pos为当前可行进的步数 故每次循环减一 类似于加油站问题if(nums[i]>pos){pos = nums[i];}if(pos + i>=len){return true;}} return false; }
Jump Game II
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[] nums){ int pos = 0; int len = nums.length-1; int steps = 0; int s1 = 1; int s2 = nums[0]; int jum = 0;//当前最远跳数 s1到s2之间 int mPos = 0;//记录当前能跳最远的位置 if(s2 >= len&&len!=0)return 1; if(len==0)return 0; while(pos<=len){ //发现远跳点 修改jum值 if(nums[s2]>jum){ mPos = s2; jum = nums[s2]; } //搜寻结束 选择新的pos点继续 if(s1==s2){ //修改s1 s2继续 s1 = mPos+1; s2 = nums[mPos]-1+s1; steps++; jum = 0; pos = mPos; }else{ s2--; } if(nums[pos]+pos >= len){ return steps+1; } } return steps; }
- Leetcode 55 Jump Game && 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
- 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
- ubuntu 15.用ECLIPSE编译JNI
- 组合查询
- fiddler Android下https抓包
- 160115iOS多线程中performSelector: 和dispatch_time的不同
- Node.js如何处理健壮性
- Leetcode 55 Jump Game && 45 Jump Game II
- XML文件解析
- HDU【1247】Hat’s Words
- hibernate学习笔记
- Android ui utils-简单实用的Android界面工具
- Gnome增加消息提醒extension 适用于聊天工具如xchat "message notifier" "notifications alert" "permanent notification"
- 车辆检测”Learning to Detect Vehicles by Clustering Appearance Patterns“
- NET(C#)接入Dubbo服务,Zookeeper作为Dubbo服务的注册中心,实现thrift协议访问接口(2)
- HDU 1069 Monkey and Banana (类似最长递增子序列)