def can_jump(nums):
reach=0
for i,n in enumerate(nums):
if i>reach: return False
reach=max(reach,i+n)
return True
public boolean canJump(int[] nums){
int reach=0;
for(int i=0;i<nums.length;i++){
if(i>reach) return false;
reach=Math.max(reach,i+nums[i]);
} return true;
}
Greedy max-reach. enumerate vs manual index.
def can_jump(nums):
reach=0
for i,n in enumerate(nums):
if i>reach: return False
reach=max(reach,i+n)
return True
public boolean canJump(int[] nums){
int reach=0;
for(int i=0;i<nums.length;i++){
if(i>reach) return false;
reach=Math.max(reach,i+nums[i]);
} return true;
}
1. Track max reachable 2. If current > reach: false