題目思路輸入乙個遞增排序的陣列和乙個數字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 ...