当前位置: 首页 > news >正文

【算法】移除元素

在这里插入图片描述

今天讲的是力扣题目的题解:

力扣题目:
72.移除元素

题目描述:
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。

假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作:

  • 更改 nums 数组,使 nums 的前 k 个元素包含不等于 val 的元素。nums 的其余元素和 nums 的大小并不重要。
  • 返回 k

核心思路:

使用快慢指针的思路,fast指向的是有效元素,slow指向的是新数组的下标

第一步:
定义一个慢指针:slow 指向的是新数组的下标

第二步:
定义一个快指针:fast 的目的是遍历数组的每一个元素,将不是val的有效元素赋值给slow的位置

第三步:
利用for循环,通过fast++来遍历整个数组

第四步:
当在循环的过程中,遇到不是val的有效元素,就将这个有效元素通过nums[fast] 来记录,进一步将这个有效元素赋值给slow的位置,让slow++,因为slow代表的在新数组中有效元素存放的位置

代码如下:

int slow  = 0;

第一步:
定义一个慢指针:slow 指向的是新数组的下标

第二步:
定义一个快指针:fast 的目的是遍历数组的每一个元素,将不是val的有效元素赋值给slow的位置

for(int fast = 0; fast < nums.length; fast++)

第三步:
利用for循环,通过fast++来遍历整个数组

第四步:
当在循环的过程中,遇到不是val的有效元素,就将这个有效元素通过nums[fast] 来记录,进一步将这个有效元素赋值给slow的位置,让slow++,因为slow代表的在新数组中有效元素存放的位置

 if(nums[fast] != val){nums[slow] = nums[fast];slow++;}

完整代码如下所示:

class Solution {public int removeElement(int[] nums, int val) {int slow  = 0;for(int fast = 0; fast < nums.length; fast++){if(nums[fast] != val){nums[slow] = nums[fast];slow++;}}return slow;}}
http://www.lryc.cn/news/518898.html

相关文章:

  • 【后端面试总结】设计一个分布式锁需要考虑哪些东西
  • awr报告无法生成:常见案例与解决办法
  • Hadoop 生态之 kerberos
  • 【文件I/O】文件持久化
  • USB学习——基本概念
  • python-leetcode-三数之和
  • springboot整合拦截器
  • B树与B+树:数据库索引的秘密武器
  • Lua语言中常用的字符串操作函数
  • HOW - Form 表单确认校验两种模式(以 Modal 场景为例)
  • LabVIEW部署Web服务
  • 进程件通信——网络通信——TCP
  • 【数据库】三、SQL语言
  • Python对象的序列化和反序列化工具:Joblib与Pickle
  • Spring Boot3 配合ProxySQL实现对 MySQL 主从同步的读写分离和负载均衡
  • 量子计算遇上人工智能:突破算力瓶颈的关键?
  • 【Unity插件】解决移动端UI安全区问题 - Safe Area Helper
  • JSON.stringify 实现深度克隆的缺陷
  • 深度解析如何使用Linux中的git操作
  • el-table 合并单元格
  • Redis 三大问题:缓存穿透、缓存击穿、缓存雪崩
  • 常用字符串处理函数
  • Pathview包:整合表达谱数据可视化KEGG通路
  • seleniun 自动化程序,python编程 我监控 chrome debug数据后 ,怎么获取控制台的信息呢
  • SQL中的数据库对象
  • DeepSeek:性能强劲的开源模型
  • 医疗可视化大屏 UI 设计新风向
  • 从企业级 RAG 到 AI Assistant , Elasticsearch AI 搜索技术实践
  • TypeScript语言的并发编程
  • benchANT 性能榜单技术解读 Part 1:写入吞吐