class Solution {
public:
int removeDuplicates(int A[], int n) {
// Note: The Solution object is instantiated only once and is reused by each test case.
int groupNum=0;
int i=0;
while(i<=n-1)//O(n)找出所有的group
{
int cur=A[i];
while(i+1<=n-1&&A[i+1]==A[i])
i++;
groupNum++;
i++;
}
int loc=1;//loc为group的下标,A[0]已经使用了loc=0
for(i=1;i<=n-1;i++)//A[0]保持不变,从A[1]开始进行合并
{
if(A[i-1]==A[i])
continue;
else//碰到一个新的group
{
A[loc]=A[i];
loc++;
}
}
return groupNum;
}
};
【leetcode】Remove Duplicates from Sorted Array
最新推荐文章于 2022-04-06 16:22:53 发布
本文介绍了一种用于去除整型数组中重复元素的算法实现。该算法通过遍历数组并利用双层循环来识别不同的数值组,从而有效地将重复元素过滤掉,并返回唯一元素的数量。代码采用C++编写,展示了如何在不改变原有数组顺序的情况下,移除重复项并压缩数组。

1096

被折叠的 条评论
为什么被折叠?



