题目描述
给定一个数组和一个值,使用就地算法将数组中所有等于这个值的元素删除,并返回新数组的长度。
元素的顺序可以更改。你不用去关心大于当前数组长度的空间里面存储的值
题目分析:
返回只需要返回新数组的长度,并且元素顺序可以改变,因此如果数组中的值等于elem,可以替换成任何值,数组长度要减一。
代码如下:
1 int removeElement(int A[], int n, int elem) { 2 for(int i = 0;i < n;i++) 3 { 4 if(A[i] == elem) 5 { 6 swap(A[i--],A[--n]); 7 } 8 } 9 return n; 10 }