可以这样想,最小的数必然是从小往大开始,比如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; } };