劍指offer 和為S的兩個數字

2021-10-01 15:43:46 字數 776 閱讀 5018

題目描述

輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。

思路

設定兩個指標,一前一後,因為陣列遞增有序

當前後指標和與s相等時,輸出兩個數字

當前後指標和比s大時,後指標前移一位

當前後指標和與s小時,前指標後移一位,直到i

class

solution

:def

findnumberswithsum

(self, array, tsum)

:# write code here

ifnot array:

return

iflen

(array)

<2:

return

i =0 j =

len(array)-1

while array[i]

+ array[j]

!= tsum and i < j:

temp = array[i]

+ array[j]

if temp < tsum:

i +=

1else

: j -=

1if i < j:

return

[array[i]

,array[j]

]return

劍指offer 和為S的兩個數字

esmp esmp 輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,是的他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。輸出描述 esmp esmp 對應每個測試案例,輸出兩個數,小的先輸出。esmp esmp 首先,先考慮在遞增排序的陣列中找到兩個和為s的數字。這個思路...

劍指offer 和為S的兩個數字

題目描述 輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,是的他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。輸出描述 對應每個測試案例,輸出兩個數,小的先輸出。ps 拋物線開口向下,找到的第一組 相差最大的 就是乘積最小的,不需要比較 class solution in...

劍指offer 和為s的兩個數字

輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,是的他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。輸出描述 對應每個測試案例,輸出兩個數,小的先輸出。雙指標,乙個從左向右遍歷,乙個從右向左遍歷。coding utf 8 class solution deffindnum...