C++で配列内の隣接する重複した項目を削除する方法は何ですか?

配列内の隣接する重複アイテムを取り除くには、2つのポインターを使用して配列を走査し、重複していない要素を新しい配列にコピーします。

以下はサンプルコードです。

#include <iostream>
#include <vector>

std::vector<int> removeAdjacentDuplicates(std::vector<int>& nums) {
    std::vector<int> result;
    
    int n = nums.size();
    if (n == 0) {
        return result;
    }
    
    result.push_back(nums[0]);
    
    for (int i = 1; i < n; i++) {
        if (nums[i] != nums[i - 1]) {
            result.push_back(nums[i]);
        }
    }
    
    return result;
}

int main() {
    std::vector<int> nums = {1, 2, 2, 3, 4, 4, 4, 5};
    
    std::vector<int> result = removeAdjacentDuplicates(nums);
    
    for (int num : result) {
        std::cout << num << " ";
    }
    
    return 0;
}

上記の例では、removeAdjacentDuplicates関数は、入力配列numsから隣接する重複項目を削除し、重複のない新しい配列を返すために使用されています。 main関数では、まず入力配列numsを定義し、removeAdjacentDuplicates関数を呼び出します。最後に重複のない配列が出力されます。

bannerAds