劍指 Offer 和為 S 的兩個數字

2022-09-05 18:54:14 字數 652 閱讀 7428

1. 題目

2. 解答

由於陣列是已經排好序的,我們可以定義兩個指標,第乙個指標指向第乙個元素,第二個指標指向最後乙個元素,然後求出這兩個元素的和,與目標和進行比較。若小於目標和,第乙個指標向前移動;若大於目標和,第二個指標向後移動。

若等於目標和,題目中要求輸出乘積最小的。由於兩個元素的乘積肯定小於目標和的平方,因此我們初始化目標和的平方為乙個最小乘積。當找到兩個元素和等於目標和的時候,如果他們的乘積小於最小乘積,則更新最小乘積以及這兩個元素的索引值,然後兩個指標分別向前向後移動一步繼續尋找。

時間複雜度 \(o(n)\),空間複雜度 \(o(1)\)。

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