21xrx.com
2024-12-22 22:32:32 Sunday
登录
文章检索 我的文章 写文章
C++数组去重
2023-06-24 01:14:17 深夜i     --     --
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;

}

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

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复