劍指offer 陣列中和為S的兩個數

2021-07-29 01:36:18 字數 437 閱讀 7067

題目描述

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

輸出描述:

對應每個測試案例,輸出兩個數,小的先輸出。

主要思路: 設定兩個三個下標l,m,r;r為一開始中陣列中小於等於s的下標,m為一開始陣列中小於等於s/2的下標,l為0;因為中間結果要求乘積最小的數先輸出,因此從兩邊往中間搜尋到的第一組合適的資料必然是結果。因為越到中間數字的乘積越大。 思路與和為s的序列相同,當和小於s時,l++,當和大於s時,r–,當和等於s時,儲存得到的兩個值並且直接返回。

vector

findnumberswithsum(vector

array,int sum)

}return result;

}

劍指offer 和為s的兩個數

輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得它們的和正好是s。如果有多對數字的和等於s,則輸出任意一對即可。示例 1 輸入 nums 2,7,11,15 target 9 輸出 2,7 或者 7,2 示例 2 輸入 nums 10,26,30,31,47,60 target 40 輸...

劍指offer 和為S的兩個數字

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

劍指offer之和為S的兩個數字

題目描述 輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,是的他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。輸出 對應每個測試案例,輸出兩個數,小的先輸出。思路 既然陣列是排好序的,可以採用左右夾逼的做法,找出和為s的兩個數 然後,第一組和為s的兩個數相乘肯定最小,因為...