码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode第一刷_Remove Duplicates from Sorted Array II

时间:2014-05-11 14:54:49      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:c++   leetcode   算法   

水题。

我之前说过包含至多几个至少几个的问题都比较难,这个题可是让我大脸了。至多可以重复一次,那就重复次数多于两次再计算重复,否则的话像普通的数据一样直接按照重复次数前移就可以了嘛。不过说归说,这种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;
    }
};


leetcode第一刷_Remove Duplicates from Sorted Array II,布布扣,bubuko.com

leetcode第一刷_Remove Duplicates from Sorted Array II

标签:c++   leetcode   算法   

原文地址:http://blog.csdn.net/u012792219/article/details/25471867

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!