和为S的两个数字
题目描述
输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
vector<int> FindNumbersWithSum(vector<int> array,int sum) { vector<int> ires; if(array.size()==0) return ires; int behind = 0; int ahead = array.size()-1; int tmpSum = 0; while(behind<ahead){ tmpSum = array[behind]+array[ahead]; if(sum == array[behind]+array[ahead]){ ires.push_back(array[behind]); ires.push_back(array[ahead]); break; } else if(tmpSum < sum){ behind++; } else if(tmpSum > sum){ ahead--; } } return ires; }