劍指 面試題57 和為s的兩個數字

2021-10-05 02:14:56 字數 1155 閱讀 9599

題目

輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得它們的和正好是s。如果有多對數字的和等於s,則輸出任意一對即可。

1

<=n

ums.

leng

th

<=1

05,1

<=n

ums[

i]

<=1

06

1 <= nums.length <= 10^5, 1 <= nums[i] <= 10^6

1<=n

ums.

leng

th<=1

05,1

<=n

ums[

i]<=1

06

思路

因為陣列是已經排好序的,設定頭尾兩個指標,依次往中間走即可找到滿足的兩個數字,時間複雜度o(n

)o(n)

o(n)

。**c++ **

class

solution

}return res;}}

;

python

class

solution

:def

twosum

(self, nums: list[

int]

, target:

int)

-> list[

int]

: start, end =0,

len(nums)-1

res =[0

]*2while startif nums[start]

+nums[end]

start +=

1elif nums[start]

+nums[end]

>target:

end -=

1else

: res[0]

= nums[start]

res[1]

= nums[end]

break

return res

劍指offer 面試題57 和為S的兩個數字

面試題 劍指offer 題目解答 輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。對應每個測試案例,輸出兩個數,小的先輸出。我們能馬上想到固定乙個數,然後依次遍歷陣列中的剩餘數字,在o n2 的時間複雜度,解出題目。但是...

劍指offer 面試題57 和為s的兩個數

輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。isinstance 函式來判斷乙個物件是否是乙個已知的型別,類似 type type 不會認為子類是一種父類型別,不考慮繼承關係。isinstance 會認為子類是一種父...

面試題57 和為S的兩個數字

題意 輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。思路 假設有兩個指標l,r分別在陣列的中,並且num l num r sum 因為這個陣列是有序的,很明顯我們可以知道 對於這個num l 所有的num r num ...