subject :
"""
Give you an array nums And a value val, You need to remove all values in place equal to val The elements of , And return the new length of the array after removal .
Don't use extra array space , You have to use only O(1) Extra space and modify the input array in place .
The order of elements can be changed . You don't need to think about the elements in the array that follow the new length .
"""
class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
i = 0
while i<len(nums):
if nums[i] == val:# After deleting this element , The following elements will be filled automatically , So the subsequent position remains the same
del nums[i]
else:
i += 1 # It's not equal to val Auto scan back
return nums
nums = [0,1,2,2,3,0,4,2]
val = 2
S = Solution()
result = S.removeElement(nums,val)
print(result)