关于如何删除一个数组中的相同的元素

比如,一个数组含有1,2,2,3,4,5,6,6,6,7这几个元素,要求,将其相同的元素全部删除,也就是得到了这样一个数组,1,2,3,4,5,6。需要时间和空间的最优化。 谁能帮忙写出这个算法?或者C++的代码。

此算法主要针对已排好序的数组!
它的时间复杂度为Tn=O(n^2)
Sn=O(1);
主要的问题出在元素的移动上;如果用链表来表示数组,那么它的时间复杂度为Tn=O(n);
void
DeleteSame(int
r[])
{
int
length=10;//数组长
int
i
=
0;
for(;
i
<
10;)
{
if(r[i]==r[i++])
{
for(
int
j
=
i
+
1;
j
<
length
-i-1;
j++)
r[j]
=
r[j++];
length--;
}
else
i++;
}
}
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答