Home Jump Game
Post
Cancel

Jump Game

View Jump Game on LeetCode

Statistics

Time Complexity
O(n) - Each element in the input list is visited at most once, resulting in the O(n) time complexity.

Space Complexity
O(1) - Only one variable is created, resulting in the O(1) space complexity.

Runtime Beats
83.11% of other submissions

Memory Beats
90.15% of other sumbissions

Explanation

The algorithm functions by recording the maximum amount of jumps at any given moment. Tracking this allows for an easy check to see if the program has exceeded its maximum number of jumps and is no longer a valid input list.

The jumps variable is initialized to the first element, and then the program iterates through all of the list elements.

Through this iteration, the algorithm subtracts 1 for each jump and then validates the jumps; if it is valid, continue and update jumps with the largest value between the current element at i or jumps. If invalid, return False.

Solution

1
2
3
4
5
6
7
8
9
10
class Solution:
    def canJump(self, nums: List[int]) -> bool:
        jumps = nums[0]

        for i in range(1,len(nums)):
            jumps -= 1
            if jumps < 0: return False
            jumps = max(jumps,nums[i])

        return True
This post is licensed under CC BY 4.0 by the author.

Repeated Substring Pattern

Valid Boomerang