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]
|
:type nums: List[int]
|
||||||
:rtype: bool
|
:rtype: bool
|
||||||
"""
|
"""
|
||||||
# Each index value is the maximum you can jump from that position
|
# # Each index value is the maximum you can jump from that position
|
||||||
maxJump = 0
|
# maxJump = 0
|
||||||
for x in range(len(nums)-1):
|
# if 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:
|
|
||||||
# return True
|
# return True
|
||||||
# else:
|
# for x in range(len(nums)-1):
|
||||||
# return False
|
# 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([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([3,0,8,2,0,0,1]))
|
||||||
# print(canJump([2,0,2]))
|
# print(canJump([2,0,2]))
|
||||||
|
print(canJump([2,5,0,0]))
|
||||||
|
# print(canJump([0,2,3]))
|
||||||
# print(canJump([2,0,0]))
|
# 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