231.跳跃游戏
55. 跳跃游戏 - 力扣(LeetCode)
方法一
class Solution {
public boolean canJump(int[] nums) {
boolean res=true;
for(int i=nums.length-1;i>=0;i--){
if(nums[i]==0&&i!=nums.length-1){
int j=i,count=0;
res=false;
while(j>=0){
if(nums[j]>count){
res=true;
}
count++;
j--;
}
if(res==false){
return res;
}
}
}
return res;
}
}
class Solution(object):
def canJump(self, nums):
res=True
for i in range(len(nums)-1,-1,-1):
if nums[i]==0 and i!=len(nums)-1:
j=i
count=0
res=False
while j>=0:
if nums[j]>count:
res=True
count+=1
j-=1
if res==False:
return res
return res
方法二
class Solution {
public boolean canJump(int[] nums) {
int maxCover=0;//最大覆盖范围
for(int i=0;i<nums.length;i++){
maxCover=Math.max(maxCover,i+nums[i]);
if(maxCover==i&&nums[i]==0&&i!=nums.length-1){
return false;
}
}
return true;
}
}
class Solution(object):
def canJump(self, nums):
maxCover=0#最大覆盖范围
for i in range(len(nums)):
maxCover=max(maxCover,i+nums[i])
if maxCover==i and nums[i]==0 and i!=len(nums)-1:
return False
return True