two pointer method first run
This commit is contained in:
parent
cb07bc053b
commit
51a7634c6e
@ -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]))
|
||||
# print(canJump([1,1,2,2,0,1,1]))
|
||||
# print(canJump([5,9,3,2,1,0,2,3,3,1,0,0]))
|
||||
Loading…
Reference in New Issue
Block a user