劍指Offer 57 js和為S的兩個數字

2021-10-14 20:04:59 字數 550 閱讀 3553

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

陣列中可能有多對符合條件的結果,而且要求輸出乘積最小的,說明要分布在兩側 比如3,85,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,並不難,但是如果存在多個符合這樣要求的數,...