diff --git a/Top150Interview/55JumpGame.py b/Top150Interview/55JumpGame.py index beb6969..82ed5c9 100644 --- a/Top150Interview/55JumpGame.py +++ b/Top150Interview/55JumpGame.py @@ -3,28 +3,55 @@ def canJump(nums): :type nums: List[int] :rtype: bool """ - # Each index value is the maximum you can jump from that position - maxJump = 0 - for x in range(len(nums)-1): - maxJump += nums[x] - if nums[x] >= len(nums)-(x+1): - return True - # print(maxJump) - if nums[x] == 0: - print(x+1) - print(len(nums)) - if nums[x+1] >= len(nums)-x: - return True - return False - return True - # if maxJump >= len(nums)-1: + # # Each index value is the maximum you can jump from that position + # maxJump = 0 + # if len(nums) == 1: # return True - # else: - # return False + # for x in range(len(nums)-1): + # print(nums[x]) + # maxJump += nums[x] + # if nums[x] >= len(nums)-(x+1): + # return True + # # print(maxJump) + # if nums[x] == 0: + # if x-1 >= 0 and nums[x-1] >=2: + # maxJump += nums[x] + # else: + # # print(x+1) + # # print(len(nums)) + # # if nums[x+1] >= len(nums)-(x+2) and x+1 != len(nums)-1: + # # return True + # return False + # return False + + # Double pointer method + start = 0 + jump = len(nums)-2 + # Case for single value array + if len(nums) == 1 or nums[start] >= len(nums)-1: + return True + while start <= jump: + print(f'start: {start}, value {nums[start]}') + print(f'jump index: {jump}, value: {nums[jump]}') + if nums[start] == 0: + return False + # check if jump is equal to end jump + if not nums[jump] >= (len(nums)-(jump+1)): + jump -= 1 + if not nums[start + nums[start]] >= 0: + if start + nums[start] >= jump: + return True + start += 1 + else: + start += 1 + # print(canJump([2,3,1,1,4])) -print(canJump([3,2,1,0,4])) +# print(canJump([3,2,1,0,4])) # print(canJump([3,0,8,2,0,0,1])) # print(canJump([2,0,2])) +print(canJump([2,5,0,0])) +# print(canJump([0,2,3])) # print(canJump([2,0,0])) -# print(canJump([1,1,2,2,0,1,1])) \ No newline at end of file +# print(canJump([1,1,2,2,0,1,1])) +# print(canJump([5,9,3,2,1,0,2,3,3,1,0,0])) \ No newline at end of file