​题目传送门​


剑指Offer——JZ42.和为S的两个数字【二分】_最优解


题解

  • 二分答案
  • 对于剑指Offer——JZ42.和为S的两个数字【二分】_二分答案_02时,一定有剑指Offer——JZ42.和为S的两个数字【二分】_二分答案_03
  • 所以输出乘积最小的只是个幌子,第一次找到的二分答案就是最优解

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 {};
}
};