167. 两数之和II
分析
- 初始化两个指针:
- 左指针
i = 0
(指向数组开头) - 右指针
j = n - 1
(指向数组末尾)
- 左指针
- 双指针移动规则:
- 计算
numbers[i] + numbers[j]
:- 等于
target
→ 返回[i + 1, j + 1]
(下标从 1 开始) - 大于
target
→ 右指针左移(减小和) - 小于
target
→ 左指针右移(增大和)
- 等于
- 计算
- 终止条件:
- 当
i >= j
时,搜索结束
- 当
时间复杂度
时间复杂度 O(n)
空间复杂度
空间复杂度为 O(1)
C++代码
|
|