1 条题解

  • 0
    @ 2025-3-23 16:02:41
    #include <bits/stdc++.h>
    #define N 1000005
    #define K 1000001	// 假设非负整数最大元素范围为1000000
    using namespace std;
    int a[N], n, b[N];
    int cnt[K];
    int main() {
        // 输入
        cin >> n;
        for (int i = 1; i <= n; ++i) {
            cin >> a[i];
            ++cnt[a[i]];	// 这里通过计数数组cnt来维护每一种值出现的次数
        }
        
        // 维护最终有序序列
        for (int i = 0, j = 0; i < K; ++i)      // 枚举每一种值i,指针j用来枚举填充答案数组中的位置
            for (int k = 1; k <= cnt[i]; ++k)   // 根据该值出现的次数
                b[++j] = i;                     // 添加对应个数的i到答案序列
    	
        // 输出
        for (int i = 1; i <= n; ++i)    if(b[i]%2!=0)   cout << b[i] <<",";
        
        cout << endl;
        
        return 0;
    }
    

    信息

    ID
    242
    时间
    1000ms
    内存
    256MiB
    难度
    9
    标签
    递交数
    45
    已通过
    4
    上传者