LeetCode27移除元素

embedded/2025/3/13 16:48:09/

在这里插入图片描述

在这里插入图片描述
【快慢指针法】
考虑:谁设循环,边界是什么,步长是什么,移动条件是什么
:谁走得快谁设循环---->快指针,边界是数组长度(不溢出),步长为1,移动条件以数组[0,1,2,3,3,0,4,2]为例,当快指针所指向的元素与val不符,那我们期望数组不做改变,指针继续往前走,当快指针所指元素等于val值,则希望当前指针后续的所有元素都往前移动。此时,如果考虑当nums[fast]==val作为条件对数组进行改动的话,比如当fast=2,nums[fast]val2,让low指针指向当前位置,fast不断后移把元素往前搬,这就会退化成双重循环的暴力解法,与我们想要的效果不符,所以需要考虑另一种条件:当快指针所指元素与val不符时,数组做出改变
这样循环会有两种情况出现:
①nums[fast]==val
此时此刻low指针会与fast指针同在,因为没遇到val,low指针不语只是一味地跟随,那么当遇到了val,fast指针需要找到下一个不是val的元素把当前val覆盖掉,也就只需要fast循环,当出现!=val的情况,则会覆盖掉
②nums[fast]!=val
我们希望数组不发生改变,也就是元素不移动,那么可以原地交换,nums[low++]=nums[fast],慢指针仅仅跟随快指针

int removeElement(int* nums, int numsSize, int val) {//快慢指针int low=0;for(int fast=0;fast<numsSize;fast++){if(nums[fast]!=val){nums[low++]=nums[fast];}}return low;
}

http://www.ppmy.cn/embedded/172302.html

相关文章

加油站小程序实战教程10用户登录授权

目录 引言1 搭建布局2 创建变量3 设置条件展示4 创建登录页面5 配置跳转总结 引言 在《加油站小程序实战教程09显示站点信息》中&#xff0c;我们介绍了如何和地图联动显示站点信息的内容。显示完基本信息后&#xff0c;就进入到我们的主业务中&#xff0c;进行加油操作了。在…

c#25/3/11 周二

18.传值/输出/引用/数组/具名/可选参数&#xff0c;扩展方法_哔哩哔哩_bilibili 未完。。37

Windows10下docker desktop命令行操作指南(大部分也适用于Linux)

Windows系统最大的特点就是可视化操作&#xff0c;点点鼠标就能操作软件。但是在特殊的情况下&#xff0c;比如docker desktop图标点了之后没反应&#xff0c;但是看后台程序&#xff0c;它又已经运行了&#xff0c;这时候就要使用命令行来操作了。 针对这次情况&#xff0c;所…

21.Linux 线程库的使用与封装

在linux内核中并没有线程的概念&#xff0c;只有轻量级进程LWP的概念&#xff0c;linux下的线程都是是由LWP进行模拟实现的。因此linux操作系统中不会提供线程的相关接口&#xff0c;只会提供轻量级线程的接口&#xff08;如vfork&#xff0c;clone等&#xff09;。但是在我们的…

天润融通走进蔚来汽车,探索AI在厂店一体化中的应用

存量时代&#xff0c;汽车行业正在积极探索创新发展模式。企业对于提升客户体验、优化运营管理的需求愈发迫切&#xff0c;AI技术正成为车企提高竞争力的重要锚点。 2月28日&#xff0c;天润融通带领众多汽车行业客户走进蔚来汽车&#xff0c;实地参观蔚来汽车牛屋中心&#x…

【数据结构】第六章:图

本篇笔记课程来源&#xff1a;王道计算机考研 数据结构 【数据结构】第六章&#xff1a;图 一、图的定义1. 基本概念2. 特殊的图 二、图的存储结构1. 邻接矩阵2. 邻接表3. 十字链表4. 邻接多重表5. 四种存储结构对比 三、图的基本操作四、图的遍历算法1. 广度优先遍历2. 深度优…

基于单片机的智慧农业大棚系统(论文+源码)

1系统整体设计 经过上述的方案分析&#xff0c;采用STM32单片机为核心&#xff0c;结合串口通信模块&#xff0c;温湿度传感器&#xff0c;光照传感器&#xff0c;土壤湿度传感器&#xff0c;LED灯等硬件设备来构成整个控制系统。系统可以实现环境的温湿度检测&#xff0c;土壤…

python编写的一个打砖块小游戏

游戏介绍 打砖块是一款经典的街机游戏&#xff0c;玩家控制底部的挡板&#xff0c;使球反弹以击碎上方的砖块。当球击中砖块时&#xff0c;砖块消失&#xff0c;球反弹&#xff1b;若球碰到挡板&#xff0c;则改变方向继续运动&#xff1b;若球掉出屏幕底部&#xff0c;玩家失…