题目
代码
执行用时:104 ms, 在所有 Python3 提交中击败了66.87% 的用户
内存消耗:26 MB, 在所有 Python3 提交中击败了44.21% 的用户
通过测试用例:36 / 36
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
left,right=0,len(nums)-1
while left<right:
if nums[left]+nums[right]<target:
left+=1
elif nums[left]+nums[right]>target:
right-=1
elif nums[left]+nums[right]==target:
return [nums[left],nums[right]]
return []
【方法2】
执行用时:1332 ms, 在所有 Python3 提交中击败了5.09% 的用户
内存消耗:26 MB, 在所有 Python3 提交中击败了45.06% 的用户
通过测试用例:36 / 36
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
left=0
while left<len(nums):
if nums[left]>=target:
break
right=len(nums)-1
ll=left
while ll<=right:
mid=(ll+right)//2
if nums[mid]==(target-nums[left]):
return [nums[left],nums[mid]]
elif nums[mid]>(target-nums[left]):
right=mid-1
elif nums[mid]<(target-nums[left]):
ll=mid+1
left+=1
return []