27移除元素--双指针(快慢指针)

news2024/11/19 12:36:05

27移除元素–双指针(快慢指针)

移除元素这道题看起来很简单,但其蕴含的快慢指针的思想十分重要。

  1. 双for循环(暴力法)-- O( n 2 n^2 n2)

    使用第1个for循环 i 遍历数组所有元素

    使用第2个for循环从 i 开始进行数组元素的前移

  2. 双指针法(快慢指针法)-- O(n)

    使用双指针节省一个for循环

    3

如图,使用fast代表原数组,slow代表更新后的数组。

首先,利用fast进行数组的遍历。若当前扫描的值不是要删除的值,则将当前值赋值给slow指向的空间,保证原数组与更新后数组数值的同步。之后,slow值加1,fast加1,指向下一个空间。

若当前fast指向的值是要删除的值,则不将当前值赋值给slow。此时,slow不改变,仅将fast加1,从而达到“移除元素”的效果。

注意:算法执行完毕后,数组真实长度没有改变,仅是由待移除元素后面的值将其覆盖了。

 int removeElement(vector<int>& nums, int val) {
     int slow = 0, fast = 0;
     for(; fast < nums.size(); ++fast){
         // 如果fast值不是要移除的值,则将当前值赋值给slow,slow++
         // 如果fast值是要移除的值,则仅对fast++,当前值被移除
         if(nums[fast] != val)
             nums[slow++] = nums[fast];
     }
     return slow + 1;
 }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/124872.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

骨传导耳机伤耳朵吗、骨传导耳机适合适用的人群有哪些?

事实上&#xff0c;骨传导耳机是对耳朵最健康的一种耳机了&#xff0c;下面就来详细说说这种耳机。 骨传导耳机是以人的骨骼为介质&#xff0c;不经过外耳道和耳膜&#xff0c;将声音传递给听觉器官的耳机。他对人的耳朵损害相比起传统的耳机损害更小&#xff0c;因为听力受损…

JavaSE笔记——Lambda表达式

文章目录前言一、第一个Lambda表达式二、如何辨别Lambda表达式三、引用值&#xff0c;而不是变量四、函数接口五、类型推断总结前言 Java 8 的最大变化是引入了 Lambda 表达式——一种紧凑的、传递行为的方式。 一、第一个Lambda表达式 Swing 是一个与平台无关的 Java 类库&a…

redhat7.6+grid 11.2.0.4部署遇到各种问题

一、add cluster node时&#xff0c;卡住 两个节点时间不同步&#xff0c;设置时间同步即可 二、部署Redhat7.6oracle11g部署中的bug Oracle 11.2.0.4 部署rac过程中&#xff0c;需要运行root.sh脚本报错。提示&#xff1a; ohasd集群无法启动。该补丁修改ohasd无法启动的问题…

红外成像系统测试

通常人们把红外辐射称为红外光、红外线。实际上其波段是指其波长约在0.75μm到1000μm的电磁波。人们将其划分为近、中、远红外三部分。近红外指波长为0.75-3.0μm;中红外指波长为3.0-20μm;远红外则指波长为20-1000μm。由于大气对红外辐射的吸收,只留下三个重要的“窗口”…

一把巴枪,和被改变的菜鸟驿站站长们

成立9年的菜鸟物流一直在答题。如果说之前这张答卷更多的标签是面向物流前端的配送和分拣等&#xff0c;那么如今&#xff0c;它的更多答案已经不单纯是前端的流通和连接&#xff0c;更有最末端基于科技对人的温度和赋能。 作者|丰兰 出品|产业家 数字化&#xff0c;正在…

少儿Python每日一题(6):角谷猜想

原题解答 本次的题目如下所示&#xff08;原题出处&#xff1a;NOC&#xff09;&#xff1a; 角谷猜想&#xff1a;以一个正整数n为例&#xff0c;如果n为偶数&#xff0c;就将它变为n/2&#xff1b;如果除后变成奇数&#xff0c;则将它乘3加1&#xff08;即3n1&#xff09;。…

latex常用语法速查

本文针对overleaf在线使用latex的情况编写。 文章目录文档结构要点导入图片使用表格添加引用参考资料文档结构 文档类型设置 \documentclass[12pt,article]{book} % []中设置文档格式&#xff0c;文档字体大小默认为10pt&#xff0c;article指定文档用纸类型&#xff0c;其他…

【金猿人物展】龙盈智达首席数据科学家王彦博:量子科技为AI大数据创新发展注入新动能...

‍王彦博本文由龙盈智达首席数据科学家王彦博撰写并投递参与“数据猿年度金猿策划活动——2022大数据产业趋势人物榜单及奖项”评选。‍数据智能产业创新服务媒体——聚焦数智 改变商业回顾2022年大数据行业发展&#xff0c;令人感触最深的是数字经济时代对“数据安全”和“数…

基于自主可控的新型基础测绘与实景三维中国建设

实景三维中国作为强赋能、稳基底、重应用的新型基础设施&#xff0c;是打造数字中国、数字经济、数字政府的核心资源&#xff0c;其关键技术的掌握已经成为撬动社会生产&#xff0c;促进行业良性内循环&#xff0c;引发国家数字资源合理分配的重中之重。 ▲实景三维工程技术研究…

小程序入门01

目录 1.什么是小程序 2.小程序可以干什么&#xff1f; 3.相关资料 4.入门 4.1 申请账号 4.2 安装第一个小程序 4.3 了解程序 1.什么是小程序 2017年度百度百科十大热词之一 微信小程序&#xff08;wei xin xiao cheng xu&#xff09;&#xff0c;简称小程序&#xff0c;英文…

FreeSWITCH在视频会议中的实践经验

点击上方“LiveVideoStack”关注我们▲扫描图中二维码或点击阅读原文▲了解音视频技术大会更多信息// 编者按&#xff1a;视频会议已成为日常办公不可或缺的一部分&#xff0c;为远程交流的人们提供了许多便利。本次RTSCon 2022会议&#xff0c;由RTS社区和LiveVideoStack音视…

Win10的两个实用技巧系列之设置鼠标指针、红警玩不了怎么办?

win10系统怎么设置鼠标指针在打字时隐藏? win10隐藏鼠标指针的方法 win10系统怎么设置鼠标指针在打字时隐藏&#xff1f;win10系统输入文字的时候&#xff0c;想要隐藏鼠标指针&#xff0c;该怎么操作呢&#xff1f;下面我们就来看看win10隐藏鼠标指针的方法 win10如何隐藏鼠…

Android中的属性动画

在属性动画出来之前&#xff0c;Android系统提供的动画只有帧动画和View动画。View动画大家可能知道&#xff0c;它提供了AlphaAnimation(透明度)&#xff0c;RotateAnimation(负责旋转)&#xff0c;TranslateAnimation(负责移动)&#xff0c;ScaleAnimation(负责缩放)这4种动画…

2022年广西建筑安全员考试真题题库及答案

百分百题库提供建筑安全员考试试题、安全员证考试真题、安全员证考试题库等,提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 100.《中华人民共和国建筑法》规定,建设单位申请领取施工许可证,应当具备下列条件有() A.已经办理该建筑工程用地批准手续…

手绘图说电子元器件-晶体管

晶体二极管与单结晶体管 晶体二极管是电子电路中最重要的半导体器件,包括一般二极管和特殊二极管两大类。 晶体二极管 晶体二极管简称二极管,是一种常用的具有一个PN结的半导体器件。 晶体二极管的极性 晶体二极管两引脚有正、负极之分 晶体二极管的参数 晶体二极管的…

HOW POWERFUL ARE GRAPH NEURAL NETWORKS? 论文/GIN学习笔记

对GNN的评估 GNN 通用表达式 聚合&#xff1a; av(k)AGGREAGTE(k)({hu(k−1):u∈N(v)})a_v^{(k)}AGGREAGTE^{(k)}(\{ h_u^{(k-1)} : u \in \mathcal{N}(v) \}) av(k)​AGGREAGTE(k)({hu(k−1)​:u∈N(v)}) 更新&#xff1a; hv(k)COMBINE(k)(hv(k−1),av(k))h_v^{(k)} COMB…

【JavaSE成神之路】流程控制语句

哈喽&#xff0c;我是兔哥呀&#xff0c;今天就让我们继续这个JavaSE成神之路&#xff01; 这一节啊&#xff0c;咱们要学习的内容是流程控制语句。 先来看概念 Java的流程控制语句是指用来控制程序执行流程的语句&#xff0c;它们可以改变程序的执行顺序&#xff0c;使程序更…

javaee之SpringMVC1

三层架构与MVC设计模式介绍 一张图介绍 之前在写软件设计的三层架构的时候&#xff0c;有一张图直接拿过来 springMVC的一些简单介绍 入门案例 一、入门案例之需求分析 二、搭建开发环境 1.利用骨架创建一个maven项目 因为这个项目要部署到服务器&#xff0c;所以采用如下骨…

代码质量与安全 | 如何将清洁代码标准扩展到整个企业,促进业务上的成功?

清洁代码能够让软件开发工作变得更简单、更有趣。因为如果代码不够清洁&#xff0c;开发人员将花费很多时间在解决编码问题上&#xff0c;使他们无法将精力投入开发新代码、解决其他更有趣的问题上。 那么&#xff0c;该如何将清洁代码标准扩展到整个企业呢&#xff1f;阅读本…

操作系统:进程与线程之间的区别及联系

一、定义 1、进程&#xff1a;进程是一个具有独立功能的程序关于某个数据集合的以此运行活动。 是系统进行资源分配和调度的独立单位&#xff0c;也是基本的执行单元。是一个动态的概念&#xff0c;是一个活动的实体。它不只是程序的代码&#xff0c;还包括当前的活动。 进程…