首页 > 其他 > 详细

leetcode第一刷_Remove Duplicates from Sorted Array II

时间:2014-05-11 14:53:19      阅读:396      评论:0      收藏:0      [点我收藏+]

水题。

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!