大家好,今天我们要解锁一道简单但实用的题目——LeetCode第27题:移除元素。这个问题的乐趣在于,我们要从一个数组中移除所有给定的值,并返回新的数组长度。想象一下,就像在花园里拔除杂草,使花园变得整洁。准备好了吗?让我们一起解锁这个问题的解决方案吧!
文章目录
问题描述
首先,让我们来看一下题目要求。LeetCode第27题是这样描述的:给你一个数组 nums
和一个值 val
,你需要原地移除所有数值等于 val
的元素,并返回移除后数组的新长度。不要使用额外的数组空间,必须在原地修改输入数组,并在使用 O(1) 额外空间的条件下完成。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
示例:
输入:nums = [3,2,2,3], val = 3
输出:2, nums = [2,2]
示例:
输入:nums = [0,1,2,2,3,0,4,2], val = 2
输出:5, nums = [0,1,4,0,3]
解题思路
思路一:双指针法
双指针法是一种非常高效的解决此类问题的方法。我们使用两个指针 i
和 j
来遍历数组,