Given an array and a value, remove all instances of that value in place and return the new length.
这道题是让删除特定的元素,所以我们用count来记录特定元素记录的次数,然后把元素放在i-count上
public int removeElement(int[] A, int elem) {
if (A == null || A.length == 0)
return 0;
int count = 0;
int i = 0;
for (i = 0; i < A.length; i++) {
if (A[i] == elem)
count++;
else
A[i - count] = A[i];
}
return i - count;
}
目标是把A[i-count]=A[i]; 也就是说A[i-count]是合法位置,要把数组里的每个元素都放在里面。
如果不合法,count++,合法,放进去就可以了。