Remove Element
需求:
Given an array and a value, remove all instances of that valuein-place and return the new length.
(给定“已排序”的数组,去除数组中给定的数据)
Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
The order of elements can be changed. It doesn’t matter what you leave beyond the new length.
原地算法(in-place):将值赋值到原来的数组当中,目的是节省内存开支。
Example:
Given nums = [3, 2, 2, 3], val = 3,
Your function should return length = 2, with the first two elements of nums being 2.
分析:
代码实现:
class Solution {
public int removeElement(int[] nums, int val) {
if (nums == null || nums.length == 0) return 0;
int diffCount = 0;
for (int i=0; i<nums.length; i++) {
if (val == nums[i]) {
continue;
} else {
// 覆盖数组中的前diffCount项
nums[diffCount] = nums[i];
diffCount++;
}
}
return diffCount;
}
}