劍指offer 和為S的兩個數字 C 實現)

2021-10-08 16:39:32 字數 370 閱讀 5377

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

解題思路:首先題目告訴了我們這是乙個遞增的數列,其次讓我們求兩個數的乘積最小的。我們知道和相同的兩個數,他們相差越大,那麼他們的積就越小。我們知道這是乙個遞增的數列,所以我們可以想到從兩邊開始找,我們可以定義兩個指標分別指向陣列的兩邊。如果他們的和大於s,則說明數大了則右邊的指標–,如果和小於s,則說明數小了,則左邊的指標++,直到左邊和右邊的指標重疊時,跳出迴圈

class solution 

else

if(maxelse

}return a;}}

;

劍指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...