leetcode167
时间: 2025-02-18 16:07:41 浏览: 23
LeetCode 167 Two Sum II - Input Array Is Sorted 的解题思路
对于此题目,输入数组已经是有序排列。利用这一特性可以采用双指针法来解决问题。具体来说,在算法执行过程中设置两个指针分别指向数组的第一个元素和最后一个元素。
当这两个位置上的数之和大于目标值时,则减少较大数值的一方;反之则增加较小数值一方的位置。通过这种方式逐步逼近直到找到满足条件的组合为止[^1]。
这种方法的时间复杂度为 O(N),因为只需要一次线性扫描即可完成整个过程而不需要嵌套循环结构来进行两两比较操作[^2]。
Python 实现代码:
以下是基于上述逻辑编写的 Python 版本解答方案:
class Solution:
def twoSum(self, numbers: list[int], target: int) -> list[int]:
left, right = 0, len(numbers) - 1
while left < right:
temp_sum = numbers[left] + numbers[right]
if temp_sum == target:
return [left + 1, right + 1]
elif temp_sum < target:
left += 1
else:
right -= 1
return [-1, -1]
该版本实现了同样的功能,并且遵循了返回的结果不是零基的要求,即索引从1开始计数而不是默认列表中的0起点[^3]。
相关推荐

















