请在下面横线填写正确的代码 输入一个升序数组array和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,返回任意 组即可,如果无法找出这样的数字,返回一个空数组即可。 编程代码: class Solution defFindNumbersWithSum(self, array: List[int], sum:int) -> List[int] res =1 #创建哈希表,两元组分别表示值、下标 mp =dict() #在哈希表中查找sum-array0 for i in range(len(array)) temp=sum-array0 if temp not in mp. 补充代码__ else: res.append(temp) res.append(array0) break return res
时间: 2023-02-12 11:39:42 浏览: 219
编程代码:
```
class Solution:
def FindNumbersWithSum(self, array: List[int], sum: int) -> List[int]:
res = [] # 定义结果数组
left, right = 0, len(array) - 1 # 定义两个指针,分别指向数组的第一个数和最后一个数
while left < right: # 当两个指针还没有指到同一个数时循环
if array[left] + array[right] == sum: # 如果两个数的和等于S,将它们加入结果数组
res.append([array[left], array[right]])
left += 1 # 将左指针向右移动一位
right -= 1 # 将右指针向左移动一位
elif array[left] + array[right] < sum: # 如果两个数的和小于S,将左指针向右移动一位
left += 1
else: # 如果两个数的和大于S,将右指针向左移动一位
right -= 1
return res
```
注意: 这里的 `List[int]` 表示数组是一个整型数组。
阅读全文