【发布时间】:2021-05-03 16:15:46
【问题描述】:
我想在动态数组中查找重复元素。在大多数情况下它都有效,但它如何适用于这种情况。我在给定的数组中找到重复的元素。但是有一个问题是我的重复元素也可以重复。我该如何解决那部分。
#include <iostream>
int main() {
unsigned n;
std::cin >> n;
int count = 0;
int* dynArr = new int[n];
for (int i = 0; i < n; i++) {
std::cin >> dynArr[i];
}
for(int i = 0; i < n; i++){
for(int j = i + 1; j < n; j++){
if(dynArr[j] == dynArr[i]){
std::cout<<dynArr[j]<<" ";
break;
}
}
}
}
这部分有问题。当我输入我的数组长度为 6 和元素 {1,1,2,1,2,2} 时。 我得到了(1,1,2,2)。 但我只需要得到 1,2。
input 6
1 1 2 1 2 2
output 1 1 2 2
但必须是
output 1 2
【问题讨论】:
-
您需要将重复项记住在一个单独的数组中,并且只存储一次,如果您找到一个新的。完成之后,打印出你记住这些重复的数组。
-
请注意,一种简单有效的方法是先对数组进行排序。或者使用
std::map
标签: c++ arrays dynamic duplicates difference