题目链接:移除元素
分析:
给定一个数组,先创建一个临时变量,然后从前向后依次遍历
遇到不是要删除的 target,就把该值赋给临时变量代表的在数组里的位置
然后将临时变量作为指标再次更新(向后走,自身的值+1)
继续向后遍历,接收新的遍历的值(重复上述过程)
最后返回 临时变量的值,表示数组更新后的长度(临时变量的值是多少,代表更新后的数组的长度是多少)
代码实现:
public class Solution {
public int removeElement(int[] nums,int val) {
if (nums == null)
return 0;
int slow = 0;
for (int i = 0; i < nums.length; i++) {
// 如果当前遍历时指向的值不是要移除的值
// 就把它的值赋给slow代表的在原数组的位置,slow + 1
// 然后slow作为指标继续向前走(更新)
if (nums[i] != val) {
nums[slow++] = nums[i];
}
}
// 返回 slow,代表更新后数组的长度
return slow;
}
}