Given an array and a value, remove all instances of that value in place and return the new length.
The order of elements can be changed. It doesn't matter what you leave beyond the new length.
I think the description is not write in a clear way to understand...
I was using:
result = [j for i, j in enumerate(A) if j != elem]
A = result
but actually, this A still does not change... And I suddenly realized that it is not a hard copy.
need to check COPY!
class Solution:
# @param A a list of integers
# @param elem an integer, value need to be removed
# @return an integer
def removeElement(self, A, elem):
while elem in A:
A.remove(elem)
return len(A)