[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
查看2道真题和解析