class Solution:
        def canJump(self, nums: List[int]) -> bool:
            if not nums:
                return False
            n = len(nums)
            result = n - 1
            for i in range(n-1, -1, -1):
                if i + nums[i] >= result:
                    result = i
            if result == 0:
                return True
            else:
                return False
    
    class Solution:
        def canJump(self, nums: List[int]) -> bool:
            if not nums:
                return False
            n = len(nums)
            maxReach = 0
            for i in range(n):
                if maxReach < i:
                    return False
                maxReach = max(maxReach, i + nums[i])
    
            return True