#include <stdio.h> int main() { int n = 0,k = 0; int max = 0; int arr[1000001] = {0}; scanf("%d",&n); for(int i = 0;i < n; i++) { scanf("%d",&k); //记录输入数据中最大的一个数 if(max<k) max = k; //将数据与数组下标对应,出现则数据对应数组下标的值置为1 //表示该数据出现过,未出现的都为0 //如果输入数据为0,则arr[0]=1 if(arr[k] == 0) { arr[k]++; } } //前面我们记录了所出现数据的最大值 //因此不用检查到数组的最后一位 //只要将数组元素为1的下标打印即可 for(int i = 0;i<=max;i++) if(arr[i]) printf("%d ",i); return 0; }