您的位置:首页 > 其它

[LeetCode]Remove Duplicates from Sorted Array II

2015-08-04 19:57 525 查看
题目描述:给出一列有序数组,最多可以保留两个相同元素,如果还有更多次重复的话,那么要删除重复的元素,并且要求返回元素个数。

比如说,[1,1,1,2,2,3]最后要输出5,[1,1,2,2,3]
解题思路:Two Pointers。两个指针一前一后,相对上一题,增加一个times(控制元素出现个数)的变量,初始化为一次。因为任何一个出现的元素最少出现一次,少于一次它就是不出现了_(:з」∠)_
==============================================================================================================
综上而述,代码如下:一次AC.
class Solution {
public:
int removeDuplicates(vector<int>& nums) {

int N = nums.size();
if ( N<=2 ) return N;

vector<int>::iterator iter=nums.begin();
vector<int>::iterator iter1=iter+1;

int times=1;

while( iter1 != nums.end() )
{
if( *iter==*iter1 )
{
++times;
if(times==2) iter1++;
if(times>2) nums.erase(iter1);
}
else
{
if( times==1 ) ++iter;
if( times>=2 ) iter+=2;
++iter1;
times=1;
}
}
return N=nums.size();
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: