代码:
vector<int> FindNumbersWithSum(vector<int> array,int sum) {
int small=0;
int big=array.size()-1;
vector<int> result;
if(array.size()==0)
return result;
while(small<big){
int curSum=array[small]+array[big];
if(curSum==sum){
//相差最远的俩个数的乘积最小
result.push_back(array[small]);
result.push_back(array[big]);
break;
}
while((array[small]+array[big])<sum && (small<big)){
small++;
}
while((array[small]+array[big])>sum && (small<big)){
big--;
}
}
/*
int minResult=result[0]*result[1];
int num1=result[0];
int num2=result[1];
for(int i=2;i<result.size();i+=2){
int curMul=result[i]*result[i+1];
if(minResult>curMul){
minResult=curMul;
num1=result[i];
num2=result[i+1];
}
}
cout<<minResult<<num1<<num2<<endl;
*/
return result;
}