あなたは冗長な項目の配列をクリアするにはどうすればよいです

フィンガービス

今日ダブルパンチポインタは、プロセス中の二重ポインタを使用する、二つのポインタ、アレイの正面に1指すポインタが各繰り返しの数を保存するために使用されていないが、カナダから番号を格納された方法であります数、後者の2つのポインタが容易にアレイ状に除去することができるように、前の最後のリターン時に取得された各々に、確認するため、まず、比較はまた、増加前の値を返します過剰な数の
JAVAの実現

class Solution {
    public int removeDuplicates(int[] nums) {
        if (nums.length<2)
        {
            return nums.length;
        }
        int i;
        int j;
        for (i=0,j=1;j<nums.length;j++)
            {
                if (nums[i]!=nums[j])
                {
                    i++;
                    nums[i]=nums[j];
                }
            }
     return i+1;   
    }
}

Python実装

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        if len(nums)<2:
             
             return len(nums)
        i=0
        j=1
        
        while j<len(nums):
            if nums[i]!=nums[j]:
               i+=1
               nums[i]=nums[j]
            else: 
               j+=1
        return i+1

C ++の実装

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        if(nums.size()<2) 
        {
            return nums.size();
        }
        int i=0;
        for(int j=1;j<nums.size();j++)
              if (nums[i]!=nums[j]) 
              {
                  nums[++i]=nums[j];

              }
              return ++i;

    }
};
公開された19元の記事 ウォンの賞賛1 ビュー116

おすすめ

転載: blog.csdn.net/laozhujie/article/details/104617924