167. Two Sum II - Input array is sorted 两数之和 II - 输入有序数组
生活随笔
收集整理的這篇文章主要介紹了
167. Two Sum II - Input array is sorted 两数之和 II - 输入有序数组
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Title
給定一個(gè)已按照升序排列 的有序數(shù)組,找到兩個(gè)數(shù)使得它們相加之和等于目標(biāo)數(shù)。
函數(shù)應(yīng)該返回這兩個(gè)下標(biāo)值 index1 和 index2,其中 index1 必須小于 index2。
說(shuō)明:
- 返回的下標(biāo)值(index1 和 index2)不是從零開(kāi)始的。
- 你可以假設(shè)每個(gè)輸入只對(duì)應(yīng)唯一的答案,而且你不可以重復(fù)使用相同的元素。
示例:
輸入: numbers = [2, 7, 11, 15], target = 9
輸出: [1,2]
解釋: 2 與 7 之和等于目標(biāo)數(shù) 9 。因此 index1 = 1, index2 = 2 。
雙指針
根據(jù)我的直覺(jué),升序排列的有序數(shù)組,這題得用雙指針,哈哈啊。
Code
def twoSum(self, numbers: List[int], target: int) -> List[int]:left, right = 0, len(numbers) - 1while left < right:if numbers[left] + numbers[right] > target:right -= 1elif numbers[left] + numbers[right] < target:left += 1else:return [left + 1, right + 1]復(fù)雜度分析
時(shí)間復(fù)雜度:O(n),其中 n 是數(shù)組的長(zhǎng)度。兩個(gè)指針移動(dòng)的總次數(shù)最多為 n 次。
空間復(fù)雜度:O(1)。
總結(jié)
以上是生活随笔為你收集整理的167. Two Sum II - Input array is sorted 两数之和 II - 输入有序数组的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 编写你的第一个 Django 应用,第
- 下一篇: 2019\Province_C_C++_