輸入乙個遞增排序的陣列和乙個數字s
,在陣列中查詢兩個數,使得他們的和正好是s
,如果有多對數字的和等於s
,輸出兩個數的乘積最小的。
陣列中可能有多對符合條件的結果,而且要求輸出乘積最小的,說明要分布在兩側 比如看了題目了,很像3,8
5,7
要取3,8
。
leetcode
的第一題【兩數之和】,但是題目中有乙個明顯不同的條件就是陣列是有序的,可以使用使用大小指標求解,不斷逼近結果,最後取得最終值。
function
findnumberswithsum
(array, sum)
else
if(s < sum)
else
}return
;}
?資料結構專欄:劍指 offer 題解 + js **
?github筆記 :ruoruochen github
《劍指offer》 57 和為S的數字
輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,是的他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。先遍歷每個元素,在做差,看看差值在不在裡面,因為陣列是排序過的,所以乘積較小的肯定就是離得最遠的,python 的話還是很方便的 coding utf 8 class so...
劍指offer 57 和為S的數字
和為 s 的連續正整數序列 輸入乙個陣列和乙個數字s,在陣列中查詢兩個數,使得它們的和正好是s 如果有多對數字的和等於 s 則輸出任意一對即可 例如 輸入陣列 和數字 15。由於 4 11 15 因此 輸出 4 和 11 排序 利用兩個指標 left right class solution 輸入乙...
劍指offer 面試題 57 和為 S 的數字
輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,是的他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。對應每個測試案例,輸出兩個數,小的先輸出。時間限制 1秒 空間限制 32768k 熱度指數 62731 思路 要找兩個數的和為s,並不難,但是如果存在多個符合這樣要求的數,...