文章出處
文章列表
題目描述
輸入一個遞增排序的數組和一個數字S,在數組中查找兩個數,是的他們的和正好是S,如果有多對數字的和等于S,輸出兩個數的乘積最小的。
輸出描述:
對應每個測試案例,輸出兩個數,小的先輸出。
首先一個坑是,返回值的問題。題目描述說返回兩個數字,并且小的在前面,大的在后面。
C++的返回值明明只有一個啊?那就要放到數組或者其他容器里面,或者作為一個對象返回。。本題中使用vector容器進行存儲。
其次容易想到兩邊夾的方法,直接寫就好了
class Solution {
public:
vector<int> FindNumbersWithSum(vector<int> a,int sum) {
int i=0, j=a.size()-1;
vector<int>res;
while(i<j){
int t = a[i] + a[j];
if(t==sum){
res.push_back(a[i]);
res.push_back(a[j]);
break;
}
if(t<sum){
i+=1;
}else{
j-=1;
}
}
return res;
}
};
文章列表
全站熱搜