C语言题目请求分析
请编写函数fun,函数的功能是:去除一维数组中所有相同的数,使之只剩一个。数组已按从大到小的排列,函数返回值是去除后数组的个数。列如:
一维数组是:2 2 2 3 3 4 4 5 6 6 6 6 6 7 7 8 9
完成后是:2 3 4 5 6 7 8 9
程序代码:#include <stdio.h>
#include <string.h>
char mem[1000] = {0};
int main()
{
int i,j,k;
int n = 0,num = 0;
while(EOF != scanf("%d",&n))
{
while(n--)
{
scanf("%d",&num);
mem[num]++;
}
for(i = 0;i<1000;i++)
{
if(mem[i] != 0)
printf("%d ",i);
}
memset(mem,0,sizeof(mem));
printf("\n");
}
return 0;
}
/*
17
2 2 2 3 3 4 4 5 6 6 6 6 6 7 7 8 9
*/2楼的优点慢了 散列表是最快的 时间复杂度为 O(1000)
