题目链接:27. 移除元素
概述
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。
思路
解法与LeetCode题解|26. 删除排序数组中的重复项类似。
使用双指针p1、p2,其中p1是慢指针、p2是快指针。
如果val === nums[p2],我们就增加p2跳过这个目标值
如果val !== nums[p2],说明已经跳过了所有目标值,所以我们需要把nums[p2]的值复制到nums[p1]中,并把p1往后移动。
直到p2 === nums.length时,算法结束。
实现
1 | /** |