(Java)LeetCode-55. 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.



这道题是之前过河问题的简化版,只需要判断能否过河即可。

我的思路是,从前往后遍历数组,维护一个表示可以跳到的最远的地方的变量,maxCanReach = max(nums[i]+i) ,如果maxCanReach 达到或超过了终点,则返回true,如果i > maxCanReach那么久返回false  代码如下:


public class Solution {
    public boolean canJump(int[] nums) {
        int maxCanReach = nums[0];
		int temp = 0;
		for(int i = 0; i < nums.length; i++){
			if(i > maxCanReach){
				return false;
			}
			temp = nums[i]+i;
			if(temp > maxCanReach){
				maxCanReach = temp;
			}
			if(maxCanReach >= nums.length-1){
				return true;
			}
		}
		return true;}
}


你可能感兴趣的:(JAVA,LeetCode)