diff --git a/work/1/Medium/Array/55.jump-game.py b/work/1/Medium/Array/55.jump-game.py new file mode 100644 index 0000000..2d2a1bd --- /dev/null +++ b/work/1/Medium/Array/55.jump-game.py @@ -0,0 +1,52 @@ +""" +55. Jump Game +Difficulty: Medium +https://leetcode.com/problems/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 +Explanation: Jump 1 step from index 0 to 1, then 3 steps to the last +index. + +Example 2: + +Input: nums = [3,2,1,0,4] +Output: false +Explanation: You will always arrive at index 3 no matter what. Its +maximum jump length is 0, which makes it impossible to reach the last +index. + + + +Constraints: + + • 1 <= nums.length <= 10^4 + + • 0 <= nums[i] <= 10^5 +""" + + +class Solution: + def canJump(self, nums: list[int]) -> bool: + best, last = nums[0], len(nums) - 1 + + for i in range(last): + if i > best: + return False + else: + pos = nums[i] + i + best = max(best, pos) + + return best >= last