zoukankan      html  css  js  c++  java
  • 【leetcode刷题笔记】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].


    题解:

    设置两个变量:右边kepler和前向游标forward。如果当前kepeler所指的元素和它下一个元素相等,那么向A中存入这两个相等的元素,然后将forward置为kepeler+2,向前移动,如果碰到的元素都跟当前kepeler所指的元素相等,就忽略,否则,将kepeler移向forward所指元素,继续循环;如果当前kepeler所指的元素和它下一个元素不相等,那么就把这个元素直接加入A中,kepeler前移,继续循环。

    例如题目中给的数组:1,1,1,2,2,3.

    初始kepeler指向第一个1,发现kepeler+1也是一个1,就把forward置为kepeler+2=2,向前探测。探测到index为3的元素时候,发现和kepeler所指的元素不相等,就把kepeler移到索引为3处,继续上述过程,最终得到数组1,1,2,2,3.

    代码如下:

     1 public class Solution {
     2     public int removeDuplicates(int[] A) {
     3         if(A == null || A.length == 0)
     4             return 0;
     5         int kepeler = 0,forward = 0;
     6         int NewSize = 0;
     7         
     8         while(kepeler < A.length){
     9             if(kepeler+1 < A.length && A[kepeler+1] == A[kepeler]){
    10                 A[NewSize++] = A[kepeler];             //相同的元素有两个,都放入数组中
    11                 A[NewSize++] = A[kepeler];
    12                 forward = kepeler+2;
    13                 while(forward < A.length && A[forward] == A[kepeler])
    14                     forward++;
    15                 kepeler = forward;
    16             }
    17             else if(kepeler < A.length){
    18                 A[NewSize++] = A[kepeler];
    19                 kepeler++;
    20             }
    21         }
    22         return NewSize;
    23     }
    24 }
  • 相关阅读:
    Codeforces 1265A Beautiful String
    1039 Course List for Student (25)
    1038 Recover the Smallest Number (30)
    1037 Magic Coupon (25)
    1024 Palindromic Number (25)
    1051 Pop Sequence (25)
    1019 General Palindromic Number (20)
    1031 Hello World for U (20)
    1012 The Best Rank (25)
    1011 World Cup Betting (20)
  • 原文地址:https://www.cnblogs.com/sunshineatnoon/p/3851680.html
Copyright © 2011-2022 走看看