題目描述
輸入一個遞增排序的數組和一個數字S,在數組中查找兩個數,是的他們的和正好是S,如果有多對數字的和等於S,輸出兩個數的乘積最小的。
和leetcode 的two sum相似,設置一對起始位置,第一找到的一對數值就是乘積最小的
AC代碼
class Solution {
public:
vector<int> FindNumbersWithSum(vector<int> array,int sum) {
vector<int> rst;
int start=0,end=array.size()-1;
while(start<end){
if(array[start]+array[end]==sum){
rst.push_back(array[start]);
rst.push_back(array[end]);
break;
}
while (array[start]+array[end]<sum) start++;
while (array[start]+array[end]>sum) end--;
}
return rst;
}
};