class Solution:
def moveZeroes(self, nums):
"""
Do not return anything, modify nums in-place instead.
"""
for n in nums:
if n==0:
nums.remove(n)
nums.append(n)
else:
continue
两数之和 II - 输入有序数组
#暴力解法:时间复杂度O(n^2)
'''class Solution:
def twoSum(self, numbers, target):
for i in range(len(numbers)):
for j in range(i+1,len(numbers)):
if numbers[i]+numbers[j]==target:
return [i,j]'''
'''#双指针,时间复杂度O(n),空间复杂度O(1)
class Solution:
def twoSum(self, numbers, target):
low,high=0,len(numbers)-1
while low<high:
if numbers[low]+numbers[high]==target:
return [low+1,high+1]
elif numbers[low]+numbers[high]>target:
high=high-1
else:
low=low+1'''
# 单指针
class Solution:
def twoSum(self, numbers, target):
for i in range(len(numbers)):
low,high=i,len(numbers)-1
while low<high:
mid=(low+high)//2
if numbers[low]+numbers[mid]==target:
return [low+1,mid+1]
elif numbers[low]+numbers[mid]>target:
high=mid-1
else:
low=mid+1
numbers = [0,0,3,4]
target = 0
s=Solution().twoSum(numbers, target)
print(s)