プログラマ-2つを抽出して追加


#include <string>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> solution(vector<int> numbers) {
    vector<int> answer;
    int i, j, sum;

    for(i = 0; i < numbers.size() - 1; i++) {
        for(j = i + 1; j < numbers.size(); j++) {
            sum = numbers[i] + numbers[j];
            if(find(answer.begin(), answer.end(), sum) == answer.end())
                answer.push_back(sum);
        }
    }
    
    sort(answer.begin(), answer.end());
    
    return answer;
}
  • アルゴリズムのfind関数の使い方を熟知している
  • #include <algorithm>
    #include <vector>
    using namespace std;
    
    vector<int> solution(vector<int> numbers)
    {
        vector<int> answer; answer.clear();
        for(int i=0; i< numbers.size(); i++)
        {
            for(int j=i+1; j<numbers.size(); j++)
            {
                answer.push_back(numbers[i]+numbers[j]);
            }
        }
        sort(answer.begin(), answer.end());
        answer.erase(unique(answer.begin(),answer.end(), answer.end());
        return answer;
    }
  • sort();
    ベクトルerase(一意(ベクトル.begin()、ベクトル.end()、ベクトル.end() );
    繰り返しフライングコンビネーション->数式のように使用!
  • #include <string>
    #include <vector>
    #include <algorithm>
    
    using namespace std;
    
    vector<int> solution(vector<int> numbers) {
        vector<int> answer;
        bool check[200] = {false, };
        
        for(int i = 0; i < numbers.size(); i++)
        {
            for(int j = i + 1; j < numbers.size(); j++)
            {
                int sum = numbers[i] + numbers[j];
                
                if(check[sum] == false)
                {
                    answer.push_back(sum);
                    check[sum] = true;
                }
            }
        }
        
        sort(answer.begin(), answer.end());
        return answer;
    }
    3]
    これらの方法が分からないときに手作りする方法.
    この方法をマスターする.