[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