zoukankan      html  css  js  c++  java
  • Remove Duplicates from Sorted Array II

    Remove Duplicates from Sorted Array II

    Follow up for "Remove Duplicates":
    What if duplicates are allowed at most twice?

    For example,
    Given sorted array A = [1,1,1,2,2,3],

    Your function should return length = 5, and A is now [1,1,2,2,3].

     移除排序数组中重复数目超过三个的部分,最后最多只能重复两次。

    其实这样的题目做了很多次,变种也很多,比如要求移除重复元素,即上述数组变成A=[3],还有剩余单独元素,即A=[1,2,3]。其实这些方法都是有规律的,此代码的主要思想是利用一个标识isRepeated来标志重复字串,看是否重复,根据isRepeated由true到false和由false到true的转换,来移动src的指针,从而达到删除多余重复元素的目的,同样的,假设本题的意思是想求去重复元素的话,则只需要把else中的startPosition++;这一行删除即可,就可以得到一个不含重复数字的数组(即[1,2,3,3,4,4,5]->[1,2,3,4,5])。如果想要完全删除那些元素的话,就需要略微动一下脑子了,不过都是相通的。代码看下面吧。

    int removeDuplicates(int A[],int n) {
        if (A == NULL || n == 0) return 0;
        int startPosition = 0;
        bool isRepeated = false;
        for (int i = 1; i < n; i++) {
            if (A[i] != A[startPosition]) {
                isRepeated = false;
                startPosition++;
                A[startPosition] = A[i];
            } else {
                if (isRepeated == false) {
                    startPosition++;
                    A[startPosition] = A[i];
                    isRepeated = true;
                }
            }
        }
        return startPosition + 1;
    }
    //删除重复的元素[1,2,2,3,4,4,5]->[1,3,5]
    int removeDuplicates(int A[],int n) {
        if (A == NULL || n == 0) return 0;
        int startPosition = 0;
        bool isRepeated = false;
        for (int i = 1; i < n; i++) {
            if (A[i] != A[startPosition]) {
        if(isRepeated==false) startPosition++;
        A[startPosition] = A[i];
        isRepeated = false;
            } else {
        isRepeated=true;
            }
        }
        return startPosition + 1;
    }

    多总结,加油开心每一天。

  • 相关阅读:
    进程和线程的区别?什么时候用进程?什么时候用线程?----看到好的复制到自己的园子里哈哈
    HTTPS详细讲解一篇就够了
    MySQL存储过程
    Spring注入全局的HttpServletRequest
    Java进阶必备
    Java8新特性
    java.time包常用类API学习记录
    Maven常用插件
    maven-dependency-versions-check-plugin, Maven 插件查找依赖版本冲突
    Jackson自定义注解
  • 原文地址:https://www.cnblogs.com/havePassed/p/3878587.html
Copyright © 2011-2022 走看看