题目链接: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 | /** |