55. Jump Game

You are given an integer array nums. You are initially positioned at the array's first index, and each element in the array represents your maximum jump length at that position.

Return true if you can reach the last index, or false otherwise.

 Example 1:

Input: nums = [2,3,1,1,4]
Output: true

Example 2:

Input: nums = [3,2,1,0,4]
Output: false

Note: I forgot to think about [0] case and also to break early when
maxReach already crossed lastIndex.

def canJump(self, nums: List[int]):
       
    maxReach = 0
    lastIndex = len(nums)-1
   
    for i, jumpLen in enumerate(nums):
        if maxReach >= lastIndex:
            return True
        if jumpLen == 0 and maxReach == i:
            return False
        maxReach = max(maxReach, i + jumpLen)
       
    return True

Comments

Popular posts from this blog

849. Maximize Distance to Closest Person

347. Top K Frequent Elements

139. Word Break