其他题目:【C语言】PAT甲级训练题目答案、知识点梳理及总结
链接:原题
原题内容:
1041 Be Unique (20 分)
Being unique is so important to people on Mars that even their lottery is designed in a unique way. The rule of winning is simple: one bets on a number chosen from [1,104]. The first one who bets on a unique number wins. For example, if there are 7 people betting on { 5 31 5 88 67 88 17 }, then the second one who bets on 31 wins.
Input Specification:
Each input file contains one test case. Each case contains a line which begins with a positive integer N (≤105) and then followed by N bets. The numbers are separated by a space.
Output Specification:
For each test case, print the winning number in a line. If there is no winner, print None
instead.
Sample Input 1:
7 5 31 5 88 67 88 17
Sample Output 1:
31
Sample Input 2:
5 888 666 666 888 888
Sample Output 2:
None
思路:
很简单的题目,时间优先所以选择在结构或者空间上尝试算法,结构出发则使用队列+进队权限应该可以秒解,空间出发这里换了一个思路。
代码:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int num[100000], addr[100000];//只有静态数组和全局数组不需要初始化值就为0!!
int main()
{
int n, i, j, temp;
scanf("%d", &n);
j = 0;
for (i = 0; i < n; i++)
{
scanf("%d", &temp);
num[temp]++;
if (num[temp] < 2)
{
addr[j] = temp;
j++;
}
}
for (i = 0; i < j; i++)
{
if (num[addr[i]] == 1)
{
printf("%d", addr[i]);
return 0;
}
}
printf("None");
return 0;
}