プログラマー-同じ数字が好きではありません(Lv 1)

2640 ワード


[池1]
#include <vector>
#include <algorithm>

using namespace std;

vector<int> solution(vector<int> arr) 
{
    vector<int> answer;

    int temp = arr[0];
    answer.push_back(arr[0]);
    for(int i=1; i<arr.size(); i++) {
        if(temp != arr[i]) {
            answer.push_back(arr[i]);
            temp = arr[i];
        }
    }
    return answer;
}
[プール2]
#include <vector>
#include <iostream>
#include <algorithm>

using namespace std;

vector<int> solution(vector<int> arr) 
{    
    arr.erase(unique(arr.begin(), arr.end()), arr.end());
    vector<int> answer = arr;

    return answer;
}
[Unique関数の利用]
1. Vector.erase(unique(vector.begin(),vector.end()), vector.end():ベクトル部分の削除とオーバーラップは許可されていません
:uniqueが終了すると返される値はvectorゴミ値の最初の位置になるので、すぐにuniqueを使用して消去することができます[https://dpdpwl.tistory.com/39]を参照してください.
2. unique(vector.begin(), vector.end()) :