[LC]ソートアレイIIから80の削除重複

ソートされた配列を考えると  NUMS、重複削除  インプレース  重複がほとんどで登場するように、  二回に  して、新しい長さを返します。

あなたが入力配列変更することでこれを行う必要があり、別のアレイのための余分なスペースを割り当てない  で、場所を  O(1)余分なメモリで。

例1:

所与NUMS = [1,1,1,2,2,3]、

あなたの関数は=長さを返すべきである5の最初の5つの要素と、numsある1, 1, 2, 2それぞれ3。

あなたが返される長さを超えて残すかは重要ではありません。

例2:

所与NUMS = [0,0,1,1,1,1,2,3,3]、

あなたの関数は=長さを返すべき7最初の7つの要素と、numsに変更され  0、0、1、1、2、3及びそれぞれ3。

値が返された長さを超えて設定されているかは重要ではありません。

クラスソリューション{
     公共 のint removeDuplicates(INT [] NUMS){
         場合(NUMS == NULL ){
             戻り 0 
        } 
        であれば(nums.length <2 ){
             戻りnums.length。
        } 
        INT = 2遅く以下のためにINT I 2 =; I <nums.length; I ++ ){
             場合(NUMS [I] = NUMS [遅い- 2!]){ 
                NUMS [遅い ++] = NUMS [I]。
            } 
        } 
        リターンスロー; 
    } 
}

 

おすすめ

転載: www.cnblogs.com/xuanlu/p/12021095.html