21xrx.com
2025-04-27 12:01:40 Sunday
文章检索 我的文章 写文章
C++数组去重
2023-06-24 01:14:17 深夜i     19     0
C++ 数组 去重

C++数组去重,指的是在数组中去除重复的元素。这是一个常见的编程问题,很多算法和数据结构中都需要用到去重。

在C++中,可以使用两种方法进行数组去重:排序法和哈希表法。

排序法是指先将数组进行排序,然后再去除相邻重复的元素。这种方法的时间复杂度为O(nlogn),其中n为数组长度。由于C++中有现成的sort函数可以使用,因此代码也比较简单。

下面是使用排序法进行数组去重的代码:

#include <iostream>
#include <algorithm>
using namespace std;
int main() {
  int nums[] = 7;
  int n = sizeof(nums) / sizeof(nums[0]);
  sort(nums, nums + n);
  n = unique(nums, nums + n) - nums;
  for (int i = 0; i < n; i++) {
    cout << nums[i] << " ";
  }
  cout << endl;
  return 0;
}

哈希表法是指利用哈希表数据结构去除重复元素。这种方法的时间复杂度为O(n),但是需要额外的空间来存储哈希表。但是,由于C++中没有现成的哈希表数据结构,因此需要自行实现。

下面是使用哈希表法进行数组去重的代码:

#include <iostream>
using namespace std;
const int MAXN = 100;
bool hashtable[MAXN];
int main() {
  int nums[] = 3;
  int n = sizeof(nums) / sizeof(nums[0]);
  for (int i = 0; i < n; i++) {
    if (!hashtable[nums[i]]) {
      cout << nums[i] << " ";
      hashtable[nums[i]] = true;
    }
  }
  cout << endl;
  return 0;
}

无论是使用排序法还是哈希表法进行数组去重,都可以有效地解决问题。根据具体情况的不同,可以选择不同的方法来实现。

  
  

评论区

请求出错了