给定含有n个整数的序列,要求对这个序列进行去重操作。所谓去重,就是对于重复出现的数字,只保留第一次出现的位置,其它的都删除。输出不重复的序列.
函数接口定义:
int deleteNode(int *p, int n);
在这里解释接口参数。例如:其中 p
指向的一维数组中有 n
个元素。
保留不重复的元素,将最后的不重复元素的数量,作为函数值返回
裁判测试程序样例:
解答
int deleteNode(int *p, int n)
{
int num=n,i=0,k=0,j=0,temp=0,count=0;
int a[N]={0};
for(i=0;i<num;i++)
{
*(a+i)=*(p+k);
k++;
for(j=0;j<i;j++)
{
if(*(a+j)==*(a+i))
{
i--;
num--;
count++;
}
}
}
for(i=0;i<n;i++)
{
*(p+i)=*(a+i);
}
n=n-count;
return n;
}