首页 > 其他 > 详细

[LeetCode]Remove Duplicates from Sorted Array2

时间:2015-04-18 10:06:22      阅读:188      评论:0      收藏:0      [点我收藏+]
题意:从有序数组中删除重复数据,但是与题目一有一点区别:可以允许重复一次
思路:首先判断是否重复,有的话指针后移,然后按照题1中的思路进行,复杂度O(N)
代码:
    public int removeDuplicates(int[] A) {
        if(A == null || A.length == 0)return 0;
        int len = A.length;
        int i = 0, j = i + 1;

        while (j < A.length){
            if(j - i > 1){
                A[i + 1] = A[j];
            }
            if(A[j] == A[i]){//找到第二个该元素
                i ++;
                j ++;
                while (j < A.length){//删除第三个以上的相同元素
                    if(A[j] == A[i]){
                        j ++;
                    }else {
                        A[i + 1] = A[j];
                        i = i + 1;
                        j = j + 1;
                        break;
                    }
                }
            }else {
                i ++;
                j ++;
            }
        }
        len = i + 1;
        return len;
    }


[LeetCode]Remove Duplicates from Sorted Array2

原文:http://blog.csdn.net/youmengjiuzhuiba/article/details/45110449

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