Leetcode 55. 跳跃游戏

Leetcode 55. 跳跃游戏_第1张图片
思路:
用一个覆盖范围cover来表示当前坐标元素所能跳跃到的距离范围;
遍历在覆盖范围内的元素,一个个往后继续试它们的覆盖范围;
如果新的cover位置更远,就取代之;
直到覆盖范围中有最后一个元素位置,即可返回true;
否则表示没有覆盖到最后一个元素,返回false。

实现代码如下:

class Solution {
    public boolean canJump(int[] nums) {
    	int cover=0;
    	if(nums.length==1) return true;
    	
    	//在覆盖范围内,一个个往后继续试覆盖范围
    	//如果新的cover位置更远,就取代之
    	//直到覆盖范围中有最后一个元素位置,即可返回true
    	for(int i=0;i<=cover;i++) {
    		cover=Math.max(cover,i+nums[i]);
    		if(cover>=nums.length-1) {
    			return true;
    		}	
    	}
    	return false;
    }
}

你可能感兴趣的:(leetcode,游戏,算法)