C:
#include <stdio.h>
/*#include <stdlib.h>
int cmp(const void *a,const void *b);
int main()
{
int n = 0;
scanf("%d", &n);
int c[n];
for(int i = 0; i < n; i++)
{
scanf("%d",&c[i]);
}
for(int i = 0;i < n; i++)
{
for(int j = 0; j < n; j++)
{
if( c[i] == c[j] && i != j) c[i] = 0;
}
}
qsort(c,n,sizeof(int),cmp);
for(int i = 0; i < n; i++)
{
if(c[i] != 0)
{
printf("%d\n",c[i]);
}
}
return 0;
}
int cmp(const void *a,const void *b)
{
return (*(int*)a - *(int*)b);
}
*/
int main()
{
int n ;
int a[501];
int temp;
while(scanf("%d",&n) != EOF)
{
for(int i = 0;i < 501;i++) a[i]=0;
for(int i = 0; i < n; i++)
{
scanf("%d",&temp);
a[temp] = 1;
}
for(int i = 0;i < 501;i++)
{
if(a[i] == 1)
printf("%d\n",i);
}
}
return 0;
}
只想说这道题是真的恶心,测试用例不止一组,开始思路被题目误导了,先去重,再排序,弄来弄去都不太对,参考了牛客上别人的思路,把输进来的数作为下标,把相应数组值 = 1,初始时全部为0,最后输出值为1的数组下标即可。数组初始化必须在while里执行。一共做了90分钟,且参考了别人的思路和代码。
python:
while True:
try:
a, res = int(input()), set()
for i in range(a):
res.add(int(input()))
for i in sorted(res):print(i)
except:
break