zoukankan      html  css  js  c++  java
  • 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].

    C++代码实现:

    #include<iostream>
    using namespace std;
    
    class Solution
    {
    public:
        int removeDuplicates(int A[], int n)
        {
            int i,j;
            int count=0;
            if(n<3)
                return n;
            i=0;
            for(j=1; j<n; j++)
            {
                if(A[j]==A[j-1])
                {
                    A[j-count]=A[j];
                    continue;
                }
                else
                {
                    if(j-i>=3)
                        count+=j-i-2;
                    A[j-count]=A[j];
                    i=j;
                }
            }
            if(j-i>=3)
                count+=j-i-2;
            return n-count;
        }
    };
    
    int main()
    {
        Solution s;
        int arr[10]= {1,1,1,2,2,2,3,3,3,4};
        int len=s.removeDuplicates(arr,10);
        cout<<len<<endl;
        for(int i=0;i<len;i++)
            cout<<arr[i]<<" ";
        cout<<endl;
    }

    运行结果:

  • 相关阅读:
    A
    hdu 2108 Shape of HDU(判定是不是凸多边形)
    F
    J
    扩展欧几里得
    G
    A
    D
    E
    H
  • 原文地址:https://www.cnblogs.com/wuchanming/p/4108035.html
Copyright © 2011-2022 走看看