Remove Element

##题目

####Remove Element

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.

##解题思路
该题是移除数组中给定的元素。这里可以设定两个指针ij,如果A[j]不是要删除的元素,则A[i]=A[j],否则j往前移动。这样j指针相当于遍历整个数组,而i指针则负责保存剩余的元素。这样只需要遍历一遍数组即可。

##算法代码
代码采用JAVA实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Solution {
//采用两个指针,一次遍历即可
public int removeElement(int[] A, int elem) {
if(A.length<=0) return 0;
int i=0,j=0;
while(j<A.length)
{
if(A[j]!=elem)
{
A[i]=A[j];
i++;
j++;
}else{
j++;
}
}
return i;
}
}

Comments