• 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],

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

    public class Solution {

        public int removeDuplicates(int[] A) {
        int i,j=1,first = 0;//快慢指针,first判断是否是只重复一次。
        if(A==null)return 0;
        if(A.length<=1)return A.length;
        for( i=1;i<A.length;i++){    
        if(A[i]!=A[i-1]){
        A[j++]=A[i];
        first=0;
        }
        else if(first==0){    
            A[j++]=A[i];
            first=1;
            }
        }   


        return j;        
        }
    }


    更简洁的:
    public class Solution {
        public int removeDuplicates(int[] A) {
        int i,j=2;//快慢指针
        if(A==null)return 0;
        if(A.length<=2)return A.length;
        for( i=2;i<A.length;i++){    
        if(A[i]!=A[j-2]) A[j++]=A[i];
        }
        return j;        
        }
    }

  • 相关阅读:
    P1378 油滴扩展
    P1219 [USACO1.5]八皇后 Checker Challenge
    P1126 机器人搬重物
    Mac鼠标和触控板完美使用
    B词
    一个开发狗的时间线
    快速排序
    TikTok直播研发校招专属内推
    Jupyter Lab + anaconda 环境搭建
    React环境搭建
  • 原文地址:https://www.cnblogs.com/gaoxiangde/p/4379881.html
Copyright © 2020-2023  润新知