题解 | #序列中整数去重#
序列中整数去重
http://www.nowcoder.com/practice/6564a2f6e70f4153ad1ffd58b2b28490
#include<stdio.h>
#include<malloc.h>
int main(void)
{
int n;
scanf("%d",&n);
int *num=(int *)malloc(sizeof(int)*n);
for(int i=0;i<n;i++)
scanf("%d",&num[i]);
for(int i=0;i<n;i++)//从头到尾检查一遍
{
if(num[i]!=0)//因为整数的范围是1-5000,所以可以设定重复的都为0,凡是已经置为0的数不用再检查
{
int temp=num[i];
for(int j=i+1;j<=n-1;j++)//从检查的数的后一个开始,如果检查到的数重复则将其置为0
if(temp==num[j])
num[j]=0;
}
}
for(int i=0;i<n;i++)//因为题目要求输出而已,如果要将数组变为不重复的新数组,可以用一个新数组进行幅值
if(num[i]!=0)
printf("%d ",num[i]);
return 0;
}