劍指offer 和為S的兩個數字

2021-10-01 12:18:32 字數 905 閱讀 7509

題目描述:

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

輸出描述:

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

思路:遍歷陣列,先找到第乙個數dat

a1

data1

data

1,然後再在陣列中找另外乙個數sum

−dat

a1

sum-data1

sum−da

ta1。設定乙個全域性乘積最小值變數mul

timi

nmultimin

multim

in用來記錄乘積最小的兩個數字。

class

solution

;int multimin=int_max;

vector<

int> res;

for(

int i=

0;isize()

;i++)}

}return res;}}

;

思路2:採用雙指標法

class

solution

;int left=0;

int right=array.

size()

-1;int multimin=int_max;

vector<

int> res;

while

(left//此情況left和right同時發生變化

left++

; right--;}

else

if(curelse

}return res;}}

;

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