您的位置:首页 > 其它

leetcode第一刷_Remove Duplicates from Sorted Array II

2014-05-10 12:21 435 查看
水题。

我之前说过包含至多几个至少几个的问题都比较难,这个题可是让我大脸了。至多可以重复一次,那就重复次数多于两次再计算重复,否则的话像普通的数据一样直接按照重复次数前移就可以了嘛。不过说归说,这种inspace的思想还是有些用处的,数组这种实现方式致命的缺点就是删除或者添加中间的元素代价太大,因为不好把握数据的最终位置。这个题是一种情况,合并两个排序好的数组也是一个例子。

class Solution {
public:
int removeDuplicates(int A[], int n) {
int past = A[0], due = 0, tpdue = 1;
for(int i=1;i<n;i++){
if(A[i] == past){
tpdue++;
if(tpdue>2){
due++;
}else{
A[i-due] = A[i];
}
}else{
past = A[i];
A[i-due] = A[i];
tpdue = 1;
}
}
return n-due;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: