标签:self each twosum already col targe else 收缩 pull
Given an array of integers that is already sorted in ascending order, find two numbers such that they add up to a specific target number.
The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2.
Note:
Example:
Input: numbers = [2,7,11,15], target = 9 Output: [1,2] Explanation: The sum of 2 and 7 is 9. Therefore index1 = 1, index2 = 2.
双指针问题,由于是排过序的列表,可以左指针指向起始,右指针指向末尾。两个指针根据条件收缩。最终找到符合的两个值。
如果numbers[left] + numbers[right] 大于target,则右指针左移,使和减小。
如果numbers[left] + numbers[right] 小于target,则左指针右移,使和增大。
class Solution(object): def twoSum(self, numbers, target): """ :type numbers: List[int] :type target: int :rtype: List[int] """ left = 0 right = len(numbers) - 1 while left < right: add = numbers[left] + numbers[right] if add == target: return [left + 1, right + 1] elif add < target: left = left + 1 else: right = right - 1
leetcode 官网有效率更高的代码,感兴趣的可以搜下。
标签:self each twosum already col targe else 收缩 pull
原文地址:https://www.cnblogs.com/jeroen/p/9152081.html