Lettcode 27. 要素の削除(Python)

1288 ワード

27.要素の除去
配列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。

             。

                   。
def removeElement(nums, val):
    """
    :type nums: List[int]
    :type val: int
    :rtype: int
    """

    count = 0   #    val      
    for i,number in enumerate(nums):    #     
        if number == val:   #    val  ,count +1
            count += 1
        else:
            nums[i-count] = nums[i]     #    ,     , i        i-count   

    return len(nums) - count    #         

構想:時間複雑度O(n),配列を順次走査し,val値に等しい数を記録し,等しくなければ位置を調整する.