LeetCode 筆記 - 167. Two Sum II - Input Array Is Sorted

針對已排序數列的 Two Sum 問題,本文解析雙指針(Two Pointers)的標準應用。透過從數列兩端向中間逼近,能以最有效率的方式找出目標值索引,並避免重複計算,是理解排序數列優化搜尋的基礎入門題。

發佈
閱讀
約 1 分鐘
字數
175
⚠️ 舊文提醒:本文發佈於約 4 年前,部分內容或指令可能已過時,請斟酌參考。

題目在此 167. Two Sum II - Input Array Is Sorted

給一個 Sorting 過的數列,請找出兩個相加等於 target 的 index

解題思維

這題是 Two Pointers 大法的應用
不斷調整夾擠出最終結果

程式碼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:

left = 0
right = len(nums) - 1

while left < right:
value = nums[left] + nums[right]
if value == target:
return [left + 1, right + 1]
if value < target:
left += 1
else:
right -= 1

也許你也會想看看

輸入關鍵字開始搜尋 · ↑↓ 選擇 · Enter 開啟