LeetCode-Remove Element
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.
##解题思路
该题是移除数组中给定的元素。这里可以设定两个指针i
和j
,如果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
19public 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;
}
}