-
题目大意:找出一个数组内第一个单独的数。
-
思路:
- 将n个数字存入数组,并将它们的出现次数存储在hash table里
- 遍历hashtabel[a[i]],输出第一个值为1的a[i]
-
代码:
#include <iostream> using namespace std; int hashtable[101000]; // 数组大小要比10^5大 int store[101000]; int main() { int n, a; scanf("%d", &n); for(int i = 0; i < n; i++){ scanf("%d", &a); store[i] = a; hashtable[a]++; } for(int i = 0; i < n; i++){ if(hashtable[store[i]] == 1){ printf("%d", store[i]); return 0; } } printf("None"); return 0; }
-
总结:
- hash table和数组大小设置要比题目要求的大一点。
【PAT】1041 Be Unique (20 分)
最新推荐文章于 2024-05-09 15:28:56 发布
该博客讨论了一种算法问题,即在一个整数数组中找出第一个只出现一次的数。通过建立哈希表存储每个数字的出现次数,然后遍历数组找到第一个计数值为1的元素。代码实现中使用了C++,并强调了哈希表和数组大小的设定要适当大于题目要求以避免溢出。
摘要由CSDN通过智能技术生成