移除数组中指定的元素
题目: 给定一个数组和一个值,在原地移除所有的这个值的实例,并且返回新的数组长度。
出处: LeetCode 27 移除元素
思路: 可以从前向后遍历,所有非给定值的元素,都交换到数组前面的位置。也可以,从后向前遍历,一个指针标记数组尾部元素位置,一个指针向前遍历,发现待删除元素,则将尾部元素填充进来。
public int removeElement(int[] nums, int val) {
int nextEmpty = 0;
for (int i = 0; i < nums.length; i++) {
if (nums[i] != val) {
nums[nextEmpty] = nums[i];
nextEmpty++;
}
}
return nextEmpty;
}