c++ - 打印数组中的重复元素
问题描述
我想在动态数组中查找重复元素。在大多数情况下它都有效,但它如何适用于这种情况。我在给定的数组中找到重复的元素。但是有一个问题是我的重复元素也可以重复。我该如何解决那部分。
#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<int,size_t> element_count;
for(int i = 0; i < n; i++){
if ( ++element_count[dynArr[i]] == 2 ){
// Only report on the second occurrance
std::cout<<dynArr[j]<<" ";
}
}
推荐阅读
- html - 使用 jQuery 更改或删除 CSS
- javascript - Next js jQuery 与 java 脚本构造函数
- json - MySQL 5.7 - 选择 JSON 文档作为表
- sql - 将 Excel Power Query 中的查询导入 Access
- javascript - 使用javascript读取sharepoint Excel文件
- discord - 有没有办法在不嵌入 discord.js 的情况下发送超链接?
- sql - 按国家/地区统计 3 个不同的值 + 加入
- django-models - 如何使用选择字段值过滤对象:Django
- python - Pythonista 中 Node.remove_action 的属性用途是什么?
- scala - 如何为按名称传递函数参数的参数创建临时别名?