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

两种解法解决 LeetCode 27. 移除元素【C++】

移除元素

  • 27. 移除元素
    • 题目:[移除元素](https://leetcode.cn/problems/remove-element/description/)
    • 示例和提示:
    • 解法:
      • 1. 暴力解法
    • 2. 快慢指针

27. 移除元素

题目:移除元素

在这里插入图片描述

示例和提示:

在这里插入图片描述

解法:

1. 暴力解法

//暴力解法:
//实际上就是遍历数组找到需要删除的元素,然后再嵌套一层循环将该元素后面的依次向前覆盖。
class Solution {
public:int removeElement(vector<int>& nums, int val) {//为了不让每次循环都调用size()函数:int size = nums.size();//第一步,遍历目标数组:for(int i = 0; i < size; i++){//找到需要删除元素的位置;if(nums[i] == val){//删除元素从前向后遍历:for(int j = i+1; j < size; j++){nums[j-1] = nums[j];}//这里有一个迭代器失效问题,此时i指向原始数组中被删除元素的下一个位置,外层循环末尾//还会使得i++,没有判断就跳过了这个元素,所以得i--;i--;size--;}}return size;}
};

2. 快慢指针

//快慢指针法:
//很酷很丝滑的解法,快指针勇往无前的遍历,慢指针负责将快指针指向位置的元素复制到自己指向的位置,
//当快指针指向位置的元素需要删除时,慢指针停止赋值,直到快指针再次指向一个不需要删除的元素的位置。class Solution {
public:int removeElement(vector<int>& nums, int val) {int fastPoit = 0;int slowPoit = 0;int size = nums.size();for( ; fastPoit < size; fastPoit++){if(nums[fastPoit] != val){nums[slowPoit] = nums[fastPoit];slowPoit++;}}//slowPoit此时的指向正是新数组末尾的下一个位置,因为slowPoit++//是放在赋值最后执行的,所以刚好也就是新长度:return slowPoit;}
};

😄 创作不易,你的点赞和关注都是对我莫大的鼓励,再次感谢您的观看😄

相关文章:

两种解法解决 LeetCode 27. 移除元素【C++】

移除元素 27. 移除元素题目&#xff1a;[移除元素](https://leetcode.cn/problems/remove-element/description/)示例和提示&#xff1a;解法&#xff1a;1. 暴力解法 2. 快慢指针 27. 移除元素 题目&#xff1a;移除元素 示例和提示&#xff1a; 解法&#xff1a; 1. 暴力解…...

Vue + Element UI 前端篇(七):功能组件封装

组件封装 为了避免组件代码的臃肿&#xff0c;这里对主要的功能部件进行封装&#xff0c;保证代码的模块化和简洁度。 组件结构 组件封装重构后&#xff0c;试图组件结构如下图所示 代码一览 Home组件被简化&#xff0c;包含导航、头部和主内容三个组件。 Home.vue <te…...

QT QToolBox控件使用详解

本文详细的介绍了QToolBox控件的各种操作&#xff0c;例如&#xff1a;新建界面、添加页签、索引设置当前项、获取当前项的索引、获取当前项窗口、获取索引值是int的窗口、移除索引值项、获取项的数量、获取指定索引值、设置索引项是否激活、获取索引值项是否激活、设置项的图标…...

数学建模--主成分分析法(PCA)的Python实现(

目录 1.算法核心思想&#xff1a; 2.算法核心代码&#xff1a; 3.算法分类效果&#xff1a; 1.算法核心思想&#xff1a; 1.设置降维后主成分的数目为2 2.进行数据降维 3.设置main_factors1个划分类型 4.根据组分中的值进行分类 5.绘制出对应的图像 2.算法核心代码&#xff1a…...

【数据结构篇】线性表2 —— 栈和队列

前言&#xff1a;上一篇我们介绍了顺序表和链表 &#xff08;https://blog.csdn.net/iiiiiihuang/article/details/132615465?spm1001.2014.3001.5501&#xff09;&#xff0c; 这一篇我们将介绍栈和队列&#xff0c;栈和队列都是基于顺序表和链表来实现的 目录 栈&#xff…...

万物互联:软件与硬件的协同之道

在当今数字化时代&#xff0c;我们身边的一切似乎都与计算机和互联网有关。从智能手机到智能家居设备&#xff0c;从自动驾驶汽车到工业生产线&#xff0c;无论我们走到哪里&#xff0c;都能看到软件和硬件的协同作用。本文将探讨这种协同作用&#xff0c;解释软件和硬件如何相…...

ping: www.baidu.com: Name or service not known 写了DNS还是不行

环境描述&#xff1a;ESXI平台上&#xff0c;一台Centos7虚拟主机。 问题描述&#xff1a;平台上的其他的虚拟机可以正常ping通&#xff0c;就这台ping IP地址可以通&#xff0c;ping域名解析失败。 排查过程&#xff1a; 1、检查网卡配置文件和/etc/resolv.conf配置文件是否…...

C++中的decltype、std::declval 和 std::decay_t傻傻分不清楚

文章目录 前言它们是什么通俗解释总结 前言 在C中提到推导第一个映入脑海的可能是“模板”&#xff0c;当然有人也可能想到 auto&#xff0c;这些都是和推导相关的语言语法&#xff0c;再比如“完美转发”等等&#xff0c;总是就是他们的类型不用明明白白的写出来&#xff0c;…...

什么是Ubuntu LTS?与常规版本的区别

Ubuntu LTS&#xff08;Long-Term Support&#xff09;是Ubuntu操作系统的一个特殊版本&#xff0c;旨在提供更长时间的支持和稳定性。与常规的Ubuntu版本相比&#xff0c;LTS版本在以下几个方面有所不同&#xff1a; 支持周期更长&#xff1a; 使用Ubuntu LTS版本&#xff0c…...

如何写一个可以找到工作的简历不至于太烂

简历是自己的一个很重要的标签&#xff0c;是获得面试的敲门砖&#xff0c;简历是要时常更新的&#xff0c;否则会错过一些机会。简历也是给自己的正反馈。 方法 ● 模仿&#xff0c;例如Boss&#xff0c;拉钩下面都给你一个案例模板供你参考&#xff0c;但是我觉得其实参考性…...

el-select 使用

案例&#xff1a; /* * label : 界面上展示的是哪个字段,我这里需要展示名称 * value : 绑定的字段&#xff0c;一般是id */<el-selectv-model"Form.BillNumber"placeholder"请选择"change"changeValue($event)"><el-optionv-for"…...

思维导图怎么变成ppt?4个思维导图一键生成ppt的方法

做好的思维导图如何变成一份ppt&#xff1f;本文罗列了4个可行方法&#xff0c;一起来看看吧。 一 直接复制粘贴 这是最简单的方法&#xff0c;虽然这样可能会花费一些时间&#xff0c;但可以确保内容排版和布局与你想要的一致。当然&#xff0c;我们大可使用更高效的方法。…...

3D点云处理:点云投影为2D图像 调平点云(附源码)

文章目录 0. 测试效果1. 基本内容1.1 计算点云位姿1.2 调平点云1.3 点云投影2. 代码实现文章目录:3D视觉个人学习目录微信:dhlddxB站: Non-Stop_0. 测试效果...

mysql 查询优化 、索引失效

查询优化 物理查询优化 通过索引和表连接方式等技术来进行优化&#xff0c;这里重点需要掌握索引的使用 逻辑查询优化 通过SQL 等价变换 提升查询效率&#xff0c;直白一点就是说&#xff0c;换一种查询写法执行效率可能更高 索引失效 计算、函数、类型转换&#xff08;自动或…...

支付宝pc支付(springboot版),简单配置即可实现支付

概述 支付宝pc支付&#xff0c;只需要修改配置就可以实现支付&#xff0c;0基础小白都可以用。使用springboot编写&#xff0c;简单易用。 详细 DEMO简介 springboot整合支付宝pc支付&#xff0c;仅仅需要少量的配置&#xff0c;就可以实现pc支付。 项目截图 支付流程 用户…...

【Redis专题】Redis持久化、主从与哨兵架构详解

目录 前言课程目录一、Redis持久化1.1 RDB快照&#xff08;Snapshot&#xff09;&#xff1a;二进制文件基本介绍开启/关闭方式触发方式bgsave的写时复制&#xff08;COW&#xff0c;Copy On Write&#xff09;机制优缺点 1.2 AOF&#xff08;append-only file&#xff09;&…...

【vue2第十三章】自定义指令 自定义v-loading指令

自定义指令 像 v-html&#xff0c;v-if&#xff0c;v-for都是vue内置指令&#xff0c;而我们也可以封装自定义指令&#xff0c;提升编码效率。 什么是自定义指令&#xff1f; 自己定义的一些指令&#xff0c;可以进行一些dom操作&#xff0c;扩展格外的功能。比如让图片懒加载…...

数据结构--6.3查找算法(静态、动态)(插值查找)

静态查找&#xff1a;数据集合稳定&#xff0c;不需要添加&#xff0c;删除元素的查找操作。 动态查找&#xff1a;数据集合在查找的过程中需要同时添加或删除元素的查找操作。 对于静态查找来说&#xff0c;我们不妨可以用线性表结构组织数据&#xff0c;这样可以使用顺序查找…...

Spring Boot日志基础使用 设置日志级别

然后 我们来说日志 日志在实际开发中还是非常重要的 即可记录项目状态和一些特殊情况发生 因为 我们这里不是将项目 所以 讲的也不会特别深 基本还是将Spring Boot的日志设置或控制这一类的东西 相对业务的领域我们就不涉及了 日志 log 初期最明显的作用在于 开发中 你可以用…...

Playwright for Python:断言

一、支持的断言 Playwright支持以下几种断言&#xff1a; 断言描述expect(locator).to_be_checked()复选框被选中expect(locator).to_be_disabled()元素是禁用状态expect(locator).to_be_editable()元素是可编辑状态expect(locator).to_be_empty()容器是空的expect(locator).…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

GitHub 趋势日报 (2025年06月06日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...