题解 | 明明的随机数

明明的随机数

https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0

使用数组去重

#include <bits/stdc++.h>

using namespace std;

const int N = 1e3 + 10;
array<bool, N> a;

int main() {
    int n, m;
    while(scanf("%d", &n) != -1){
        while(n -- ){
            scanf("%d", &m);
            a[m] = true;
        }
    }
    for(int i = 0; i < N; i ++ ){
        if(a[i]) printf("%d\n", i);
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

常规解法使用hash set 去重

#include <bits/stdc++.h>

using namespace std;

vector<int> a;
unordered_set<int> s;

int main() {
    int n;
    scanf("%d", &n);
    for(int i = 0; i < n; i ++ ){
        int t;
        scanf("%d", &t);
        if(!s.count(t)){
            a.push_back(t);
        }
        s.insert(t);
    }
    sort(a.begin(), a.end());
    for(const auto &i : a){
        printf("%d\n", i);
    }
    return 0;
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务