type
Post
status
Published
date
Jun 5, 2024
slug
summary
tags
算法
双指针法
数组
category
算法
icon
password
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。
假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作:
  • 更改 nums 数组,使 nums 的前 k 个元素包含不等于 val 的元素。nums 的其余元素和 nums 的大小并不重要。
  • 返回 k
示例 1:
示例 2:
思路:
双指针法(快慢指针法): 通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。
💡
当找到一个不等于 val 的元素时,我们将其放入 slow 指向的位置
  • 然后 slow++,让 slow 指向下一个待填入的位置
所以当循环结束时:
  • slow 实际上已经指向了最后一个不等于 val 的元素的下一个位置
  • slow 的值就等于我们保留下来的元素个数
每日一题:LeetCode(69)—X的平方根每日一题:LeetCode(26)—删除有序数组中的重复项
Loading...