给定一个数组和一个值,在原地删除与值相同的数字,返回新数组的长度。
元素的顺序可以改变,并且对新的数组不会有影响。
python:
class Solution: """ @param: A: A list of integers @param: elem: An integer @return: The new length after remove """ def removeElement(self, A, elem): # write your code here lastIndex = len(A) - 1 for i in range(lastIndex,-1,-1): if A[i] == elem: A[i], A[lastIndex] = A[lastIndex], A[i] lastIndex -= 1 A = A[:lastIndex] return lastIndex+1C++:
class Solution { public: /* * @param A: A list of integers * @param elem: An integer * @return: The new length after remove */ int removeElement(vector<int> &A, int elem) { // write your code here int lastIndex = A.size() - 1; for(int i = lastIndex; i > -1; i--) { if(elem == A[i]) { int temp = A[i]; A[i] = A[lastIndex]; A[lastIndex] = temp; lastIndex--; } } A.resize(lastIndex+1); return lastIndex+1; } };