ron乄zxl 2024-05-04 12:04 采纳率: 0%
浏览 5

找出数组中重复的数字

找出数组中重复的数字
内存限制:128 MB
时间限制:1.000 S
题目描述
在一个长度为 n 的 nums 数组中己经有某些数字是重复的,并且nums数组里所有的数字都在0~n-1的范围内,但不知道有几个数字重复了。请找出数组中所有重复的数字。(输出多个重复数字间用空格分隔)
输入
第一行为数组长度 n。第二行为 n个整数,数字的空格分隔。
输出
数组中所有重复的数字,依从小到大排列。(输出多个重复数字间用空格分隔)
样例输入1
7
2 3 1 0 2 5 3
样例输出1
2 3
样例输入2
4
10 10 9 9
样例输出2
9 10
我的代码如下

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int n, freq[100010];
vector<int> vec;
int main() {
    cin >> n;
    for (int i = 0, x; i < n; ++i) {
        cin >> x;
        ++freq[x];
    }
    for (int i = 0; i <= n; ++i) {
        for (int j = 2; j <= freq[i]; ++j) {
            vec.push_back(i);
        }
    }
    sort(vec.begin(), vec.end());
    for (int i = 0; i < vec.size(); ++i) {
        cout << vec[i] << ' ';
    }
    return 0;
}


样例1是ok的,可样例2就会出现问题,希望有人能给我一个正确的代码

  • 写回答

5条回答 默认 最新

  • qybao 2024-05-05 06:25
    关注

    lz本来思路清晰的,但是这个题目描述本身有问题,导致lz思路出现了偏差
    比如样例2,长度n=4,nums的数字都不满足在0-3之间
    难怪我看lz的for循环怎么怪怪的
    freq[10]在for循环里根本用不到,因为j<=freq[i],i最大才是4(i=n)

    评论

报告相同问题?

问题事件

  • 创建了问题 5月4日

悬赏问题

  • ¥15 做一个简单项目,用Python分析共享单车的数据
  • ¥20 在使用CESM2.2.0模型进行case.submit过程中出现如下错误(关键词-Map)
  • ¥15 有办法改变通过wifi进入的网站的设置吗
  • ¥15 所以到底怎么算!算到凌晨五点都算不出来!
  • ¥15 label_studio
  • ¥15 请教如何phython发邮件
  • ¥15 linux系统安装问题
  • ¥15 路径规划如何采用矢量法让他们尽量在一个方向
  • ¥15 crypto 一道rsa解密题
  • ¥15 survIDINRI已将生存时间转为数值变量,仍错误 Time variable is not numeric。