【1,2,3,23,1,4,1】筛选重复的数并打印成一个数组
时间: 2023-04-03 07:05:11 浏览: 56
可以回答这个问题。筛选重复的数可以使用哈希表来实现,具体步骤如下:
1. 创建一个空的哈希表。
2. 遍历给定的数组,对于每个元素,判断其是否在哈希表中出现过。
3. 如果该元素没有出现过,则将其添加到哈希表中,并将其值设为1。
4. 如果该元素已经出现过,则将其值加1。
5. 遍历完数组后,遍历哈希表,将值大于1的元素加入到结果数组中。
6. 返回结果数组。
根据上述步骤,可以得到以下代码实现:
int main() {
int arr[] = {1, 2, 3, 23, 1, 4, 1};
int n = sizeof(arr) / sizeof(arr[0]);
unordered_map<int, int> mp;
vector<int> res;
for (int i = 0; i < n; i++) {
if (mp.find(arr[i]) == mp.end()) {
mp[arr[i]] = 1;
} else {
mp[arr[i]]++;
}
}
for (auto it = mp.begin(); it != mp.end(); it++) {
if (it->second > 1) {
res.push_back(it->first);
}
}
for (int i = 0; i < res.size(); i++) {
cout << res[i] << " ";
}
return 0;
}
输出结果为:1 23