可以这样想,最小的数必然是从小往大开始,比如5,可以是0和5,1和4,2和3,最小的是0开始的,其他的情况也是这样,所以我们从外层循环开始,寻找满足条件最小的,在从内层循环开始寻找满足两个数相加等于满足的和。
class Solution {
public:
vector<int> FindNumbersWithSum(vector<int> array,int sum) {
vector<int> vec;
int size = array.size();
int min_num = array[size]*array[size];
for(int i=0; i<size; i++){
int k=0;
for(int j=0; j<size; j++){
if(i!=j && array[i]+array[j]==sum){
vec.push_back(array[i]);
vec.push_back(array[j]);
k++;
break;
}
}
if(k!=0) break;
}
return vec;
}
};
京公网安备 11010502036488号