输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
class Solution {
public:
vector<int> FindNumbersWithSum(vector<int> array,int sum) {
//思路:首先查找数组中所有和为s的组合,然后计算出他们的乘积
//数组为排序数组,两个数的和为s时,那么根据规律应该是包含最小的数的乘积最小
vector<int> vec;
int i=0,j=array.size()-1;
while(i<j)
{
if(array[i]+array[j]==sum)
{
vec.push_back(array[i]);
vec.push_back(array[j]);
return vec;
}
else if(array[i]+array[j]>sum)
j--;
else
i++;
}
return vec;
}
};