[PAT解题报告] Be Unique

简单题,找到第一个只出现一次的数,因为数据范围不大[1-10000],所以可以直接放到数组下标里。本质就是用数组代替hash,或者叫做计数排序。
代码:

#include <cstdio>
#include <cstring>
#include <string>
using namespace std;

int have[10004];

int a[100005];

int main() {    
int n;
    scanf("%d",&n);
    for (int i = 0; i < n; ++i) {
        scanf("%d", a + i);
        ++have[a[i]];
    }
    int j = -1;
    for (int i = 0; i < n; ++i) {
        if (have[a[i]] == 1) {
            j = a[i];
            break;
        }
    }
    if (j >= 0) {
        printf("%d\n",j);
    }
    else {
        puts("None");
    }
    return 0;
}


原题链接: http://www.patest.cn/contests/pat-a-practise/1041



全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务