Leetcode/55. Jump Game

55. Jump Game

题目

解题思路

  1. 判断是否到达或者不能到达
  2. 继续遍历
    1. 如果当前位置到当前位置可到达最远位置之间,所有点都满足这种情况,就跳到可以跳到的最远位置
    2. 不满足,则找最后一个满足的点,这点就是下一步的点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution {
public boolean canJump(int[] nums) {
return jump(nums, 0);
}
private boolean jump(int[] nums, int current) {

if(current+nums[current]>=nums.length-1) {
return true;
}
if(nums[current]==0)return false;
//找最大
int maxi = current+1;
while(maxi+nums[maxi]<current+nums[current])maxi++;

if(maxi<current+nums[current]) {
return jump(nums, maxi);
}else {
return jump(nums, current+nums[current]);
}
}

}

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×