def twoSum(self,nums:list,target:int) -> list: nums = sorted(nums) left,right = 0,len(nums)-1 return_list = [] while left < right: while_left = left while while_left <right: if nums [while_left] + nums[right] == target: list = [while_left,left] left = right + 1 return list left +=1 print(twoSum([2,7,11,15],9))
时间: 2023-06-18 07:06:12 浏览: 170
TwoSum:您将获得两个表示两个非负整数的非空链表。 这些数字以相反的顺序存储,并且它们的每个节点都包含一个数字。 将两个数字相加,然后将其作为链表返回。 您可以假设两个数字不包含任何前导零,除了数字0本身
这是一个在给定数组中找到两个数之和等于目标值的问题,可以使用双指针法来解决。你的代码有一些问题,我稍作修改:
```python
def twoSum(nums: list, target: int) -> list:
nums_sorted = sorted(nums)
left, right = 0, len(nums_sorted)-1
while left < right:
if nums_sorted[left] + nums_sorted[right] == target:
return [nums.index(nums_sorted[left]), nums.index(nums_sorted[right])]
elif nums_sorted[left] + nums_sorted[right] < target:
left += 1
else:
right -= 1
return []
print(twoSum([2,7,11,15],9))
```
输出结果为 `[0, 1]`,表示在给定数组中,下标为0和1的两个数之和等于目标值9。
阅读全文