LeetCode.27要素の除去(python解法)


目次
  • solution_1

  • タイトル
    配列numsと値valを指定すると、valに等しいすべての数値の要素をその場で除去し、除去後の配列の新しい長さを返す必要があります.
    余分な配列空間を使用しないでください.入力配列をその場で変更し、O(1)余分な空間を使用する条件で完了する必要があります.
    要素の順序は変更できます.配列の中で新しい長さの後ろを超える要素を考慮する必要はありません.
    例1:
       nums = [3,2,2,3], val = 3,
    
               2,    nums           2。
    
                       。
    

    例2:
       nums = [0,1,2,2,3,0,4,2], val = 2,
    
               5,    nums          0, 1, 3, 0, 4。
    
                 。
    

    solution_1
    構想:LeetCodeと.26二重ポインタと同様に、第1のポインタは現在の所定の値と異なる位置を指し、第2のポインタは最初から最後まで順次走査され、第2のポインタが所定の値と異なる場合、第1のポインタを1桁後ろに移動し、その数字を格納する.
    結果:実行時間:36 msランキング:99.65%勝利
    コードは次のとおりです.
    class Solution:
        def removeElement(self, nums: List[int], val: int) -> int:
            i = 0  #      
            for j in range(0, len(nums)):  #      
                if nums[j] != val:
                    nums[i] = nums[j]
                    i += 1
            return i