Menu
CoddyTech

Two Sum II: Sorted Input

你会得到一个按非递减顺序排列的整数数组 numbers,以及一个整数 target。恰好有一对不同位置上的值相加等于 target。返回这两个位置的从 0 开始的索引,较小的索引在前。

函数

twoSumSorted(numbers: integer-array, target: integer) → integer-array
numbersinteger-array
排序后的整数数组
targetinteger
两个值的和必须达到
返回值integer-array
两个从 0 开始的索引 [i, j],其中 i < j 且 numbers[i] + numbers[j] == target

约束条件

  • 2 ≤ numbers.length ≤ 104
  • -5 × 108 ≤ numbers[i] ≤ 5 × 108
  • -109 ≤ target ≤ 109
  • numbers 按非递减顺序排列。
  • 恰好有一对索引 i < j 满足 numbers[i] + numbers[j] == target。

示例

输入
numbers = [-4, 1, 3, 8, 12]target = 9
输出
[1, 3]
解释
1 位于索引 1,8 位于索引 3,而且 1 + 8 = 9。没有其他数对的和是 9:例如,-4 + 12 = 8。
challenge icon

进阶

你能否用 O(n) 的时间和 O(1) 的额外内存解决这个问题?

重置代码
def twoSumSorted(numbers, target):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

numbers = [-4, 1, 3, 8, 12]
target = 9

预期输出

[1, 3]