数组 -移除元素

54 阅读1分钟

双指针

题目 LC27 链接 leetcode.cn/problems/re…

题解

public int removeElement(int[] nums, int val) {
    // 初始化两个指针,慢指针 slow 用于标记当前处理位置,快指针 quick 标记新数组位置
    int slow = 0;
    int quick = 0;
​
// 遍历数组,快指针从头到尾扫描数组
while (quick < nums.length) {
    // 如果当前快指针指向的值不等于目标值 val
    if (nums[quick] != val) {
        // 将快指针指向的值赋值给慢指针指向的位置
        nums[slow] = nums[quick];
        // 慢指针前进一位
        slow++;
    }
    // 快指针前进一位   
    quick++;
}
​
// 返回慢指针的位置,即新数组的长度
return slow;
​
}