# 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.
class Solution():
def canJump(self, x):
far = 0
for idx, n in enumerate(x):
if idx > far:
return False
far = max(far, idx+n)
return True
if __name__ == "__main__":
assert Solution().canJump([2,3,1,1,4]) == True
assert Solution().canJump([3,2,1,0,4]) == False