leetcode 167 two sum II
Posted 干炸牛_bian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 167 two sum II相关的知识,希望对你有一定的参考价值。
167. Two Sum II - Input array is sorted
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:
- Your returned answers (both index1 and index2) are not zero-based.
- You may assume that each input would have exactly one solution and you may not use the same element twice.
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 官网有效率更高的代码,感兴趣的可以搜下。
以上是关于leetcode 167 two sum II的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode167. Two Sum II - Input array is sorted
LeetCode 167. Two Sum II - Input array is sorted
[LeetCode] 167. Two Sum II - Input array is sorted
LeetCode:167. Two Sum II - Input array is sorted