題解
- 二分答案
- 對於 時,一定有
- 所以輸出乘積最小的只是個幌子,第一次找到的二分答案就是最優解
AC-Code
class Solution {
public:
vector<int> FindNumbersWithSum(vector<int> array,int sum) {
int L = 0, R = array.size() - 1;
while(L <= R) {
if(array[L] + array[R] == sum)
return {array[L], array[R]};
else if(array[L] + array[R] < sum)
++L;
else
--R;
}
return {};
}
};