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

27、移除元素

题目

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

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

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

解题思路

快慢指针法:快指针指向需要比较的元素,慢指针指向元素的存放位置。
时间复杂度:O(n),空间复杂度O(1)

代码

class Solution {// 思路:快慢指针法public int removeElement(int[] nums, int val) {// 1. 快指针指向要删除的元素// 2. 慢指针指向要保留的位置int slowIndex = 0;for(int fastIndex = 0; fastIndex < nums.length; fastIndex++){// 3. 快指针指向的元素不是要删除的元素,就将快指针位置的元素保存到慢指针位置if(nums[fastIndex] != val){nums[slowIndex++] = nums[fastIndex];}}return slowIndex;}
}
http://www.xdnf.cn/news/4455.html

相关文章:

  • 加速页面加载的全流程优化策略
  • 日常知识点之随手问题整理(虚函数 虚函数表 继承的使用场景)
  • 【Linux 系统调试】Linux 调试工具strip使用方法
  • Kubernetes生产级资源管理实战:从QoS策略到OOM防御体系
  • C 语言网络编程问题:E1696 无法打开 源 文件 “sys/socket.h“
  • ubuntu安装Go SDK
  • linux 怎么把trex-core-2.65用 crosstool-ng-1.27.0/编译
  • chili调试笔记13 工程图模块 mesh渲染 mesh共享边显示实现
  • FlyEnv:优雅直观的跨平台开发环境管理工具
  • VUE+ElementUI 使用el-input类型type=“number” 时,取消右边的上下箭头
  • Nginx 搭建支持多版本和前端路由的静态网站
  • 高斯牛顿法 梯度下降法 LM算法的区别
  • 【ARM AMBA AHB 入门 3 -- AHB 总线介绍】
  • Postman中https和http的区别是什么?
  • Linux 下MySql主从数据库的环境搭建
  • 什么是回调 钩子 Hook机制 钩子函数 异步编程
  • 【Prometheus】业务指标与基础指标的标签来源差异及设计解析
  • 4大主流行业CRM需求精解:精准匹配业务痛点与选型策略
  • 数据结构与算法-单链表的应用
  • C语言学习之字符函数和字符串函数
  • 【Python】让Selenium 像Beautifulsoup一样,用解析HTML 结构的方式提取元素!
  • Spark 之 YarnCoarseGrainedExecutorBackend
  • Linux基本操作——网络操作文件下载
  • 1、RocketMQ 核心架构拆解
  • $在R语言中的作用
  • mdadm 报错: buffer overflow detected
  • 数字电子技术基础(五十五)——D触发器
  • 5月13日观测云发布会:这一次,我们不只是发布产品
  • 项目改 pnpm 并使用 Monorepo 发布至 npm 上
  • ChatGPT-4o:临床医学科研与工作的创新引擎