两种解法解决 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. 移除元素题目:[移除元素](https://leetcode.cn/problems/remove-element/description/)示例和提示:解法:1. 暴力解法 2. 快慢指针 27. 移除元素 题目:移除元素 示例和提示: 解法: 1. 暴力解…...
Vue + Element UI 前端篇(七):功能组件封装
组件封装 为了避免组件代码的臃肿,这里对主要的功能部件进行封装,保证代码的模块化和简洁度。 组件结构 组件封装重构后,试图组件结构如下图所示 代码一览 Home组件被简化,包含导航、头部和主内容三个组件。 Home.vue <te…...
QT QToolBox控件使用详解
本文详细的介绍了QToolBox控件的各种操作,例如:新建界面、添加页签、索引设置当前项、获取当前项的索引、获取当前项窗口、获取索引值是int的窗口、移除索引值项、获取项的数量、获取指定索引值、设置索引项是否激活、获取索引值项是否激活、设置项的图标…...
数学建模--主成分分析法(PCA)的Python实现(
目录 1.算法核心思想: 2.算法核心代码: 3.算法分类效果: 1.算法核心思想: 1.设置降维后主成分的数目为2 2.进行数据降维 3.设置main_factors1个划分类型 4.根据组分中的值进行分类 5.绘制出对应的图像 2.算法核心代码:…...
【数据结构篇】线性表2 —— 栈和队列
前言:上一篇我们介绍了顺序表和链表 (https://blog.csdn.net/iiiiiihuang/article/details/132615465?spm1001.2014.3001.5501), 这一篇我们将介绍栈和队列,栈和队列都是基于顺序表和链表来实现的 目录 栈ÿ…...
万物互联:软件与硬件的协同之道
在当今数字化时代,我们身边的一切似乎都与计算机和互联网有关。从智能手机到智能家居设备,从自动驾驶汽车到工业生产线,无论我们走到哪里,都能看到软件和硬件的协同作用。本文将探讨这种协同作用,解释软件和硬件如何相…...
ping: www.baidu.com: Name or service not known 写了DNS还是不行
环境描述:ESXI平台上,一台Centos7虚拟主机。 问题描述:平台上的其他的虚拟机可以正常ping通,就这台ping IP地址可以通,ping域名解析失败。 排查过程: 1、检查网卡配置文件和/etc/resolv.conf配置文件是否…...
C++中的decltype、std::declval 和 std::decay_t傻傻分不清楚
文章目录 前言它们是什么通俗解释总结 前言 在C中提到推导第一个映入脑海的可能是“模板”,当然有人也可能想到 auto,这些都是和推导相关的语言语法,再比如“完美转发”等等,总是就是他们的类型不用明明白白的写出来,…...
什么是Ubuntu LTS?与常规版本的区别
Ubuntu LTS(Long-Term Support)是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性。与常规的Ubuntu版本相比,LTS版本在以下几个方面有所不同: 支持周期更长: 使用Ubuntu LTS版本,…...
如何写一个可以找到工作的简历不至于太烂
简历是自己的一个很重要的标签,是获得面试的敲门砖,简历是要时常更新的,否则会错过一些机会。简历也是给自己的正反馈。 方法 ● 模仿,例如Boss,拉钩下面都给你一个案例模板供你参考,但是我觉得其实参考性…...
el-select 使用
案例: /* * label : 界面上展示的是哪个字段,我这里需要展示名称 * value : 绑定的字段,一般是id */<el-selectv-model"Form.BillNumber"placeholder"请选择"change"changeValue($event)"><el-optionv-for"…...
思维导图怎么变成ppt?4个思维导图一键生成ppt的方法
做好的思维导图如何变成一份ppt?本文罗列了4个可行方法,一起来看看吧。 一 直接复制粘贴 这是最简单的方法,虽然这样可能会花费一些时间,但可以确保内容排版和布局与你想要的一致。当然,我们大可使用更高效的方法。…...
3D点云处理:点云投影为2D图像 调平点云(附源码)
文章目录 0. 测试效果1. 基本内容1.1 计算点云位姿1.2 调平点云1.3 点云投影2. 代码实现文章目录:3D视觉个人学习目录微信:dhlddxB站: Non-Stop_0. 测试效果...
mysql 查询优化 、索引失效
查询优化 物理查询优化 通过索引和表连接方式等技术来进行优化,这里重点需要掌握索引的使用 逻辑查询优化 通过SQL 等价变换 提升查询效率,直白一点就是说,换一种查询写法执行效率可能更高 索引失效 计算、函数、类型转换(自动或…...
支付宝pc支付(springboot版),简单配置即可实现支付
概述 支付宝pc支付,只需要修改配置就可以实现支付,0基础小白都可以用。使用springboot编写,简单易用。 详细 DEMO简介 springboot整合支付宝pc支付,仅仅需要少量的配置,就可以实现pc支付。 项目截图 支付流程 用户…...
【Redis专题】Redis持久化、主从与哨兵架构详解
目录 前言课程目录一、Redis持久化1.1 RDB快照(Snapshot):二进制文件基本介绍开启/关闭方式触发方式bgsave的写时复制(COW,Copy On Write)机制优缺点 1.2 AOF(append-only file)&…...
【vue2第十三章】自定义指令 自定义v-loading指令
自定义指令 像 v-html,v-if,v-for都是vue内置指令,而我们也可以封装自定义指令,提升编码效率。 什么是自定义指令? 自己定义的一些指令,可以进行一些dom操作,扩展格外的功能。比如让图片懒加载…...
数据结构--6.3查找算法(静态、动态)(插值查找)
静态查找:数据集合稳定,不需要添加,删除元素的查找操作。 动态查找:数据集合在查找的过程中需要同时添加或删除元素的查找操作。 对于静态查找来说,我们不妨可以用线性表结构组织数据,这样可以使用顺序查找…...
Spring Boot日志基础使用 设置日志级别
然后 我们来说日志 日志在实际开发中还是非常重要的 即可记录项目状态和一些特殊情况发生 因为 我们这里不是将项目 所以 讲的也不会特别深 基本还是将Spring Boot的日志设置或控制这一类的东西 相对业务的领域我们就不涉及了 日志 log 初期最明显的作用在于 开发中 你可以用…...
Playwright for Python:断言
一、支持的断言 Playwright支持以下几种断言: 断言描述expect(locator).to_be_checked()复选框被选中expect(locator).to_be_disabled()元素是禁用状态expect(locator).to_be_editable()元素是可编辑状态expect(locator).to_be_empty()容器是空的expect(locator).…...
3分钟搞定网易云音乐NCM解密:ncmdump工具让你的音乐随处播放
3分钟搞定网易云音乐NCM解密:ncmdump工具让你的音乐随处播放 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾为网易云音乐下载的歌曲只能在特定客户端播放而烦恼?当你想要在车载音响、智能音箱或其他…...
米尔i.MX 93核心板:异构计算与AI赋能入门级嵌入式开发实战
1. 项目概述:米尔NXP i.MX 93核心板如何重塑入门级嵌入式体验 在嵌入式开发领域,选型往往是一场在性能、成本和功能之间的艰难平衡。对于许多从事工业HMI、智能网关、便携式医疗设备或新能源充电桩开发的工程师来说,他们既需要一颗能流畅运行…...
手把手教你用kafka-storage.sh修复Kafka KRaft模式启动报错(附UUID生成与格式化全流程)
手把手教你用kafka-storage.sh修复Kafka KRaft模式启动报错(附UUID生成与格式化全流程) 当Kafka集群从ZooKeeper模式迁移到KRaft模式时,技术人员常会遇到因元数据问题导致的启动失败。本文将深入解析kafka-storage.sh工具的核心功能ÿ…...
Hive 3.1.2 避坑指南:手把手解决‘Metastore未初始化’及分区表数据导入那些事儿
Hive 3.1.2 实战避坑:从Metastore初始化到分区表优化的全链路解决方案 当你在Ubuntu 18.04上刚完成Hive 3.1.2的安装,满心欢喜准备大展拳脚时,命令行却无情地抛出"Hive metastore database is not initialized"的错误提示——这场景…...
AI写专著全攻略:从选题到完稿,AI工具帮你快速完成20万字专著!
学术专著的严谨性必须依靠大量的数据和资料,但资料的搜集和数据的整合却是写作中最为繁琐且耗时的部分。研究人员需要全面地收集国内外的前沿文献,这不仅包括确认文献的权威性和相关性,还有追溯原始出处,避免二次引用时的错误&…...
workout-cool项目实战:构建自动化运动数据流,打通健康管理与效率工具
1. 项目概述与核心价值 最近在健身圈和开发者社区里,一个叫“workout-cool”的项目热度悄然攀升。乍一看这个标题,你可能会觉得它只是一个简单的健身记录工具,但当你真正深入进去,会发现它远不止于此。作为一个长期在健康科技和效…...
基于规则与启发式的Claude对话内容自动Markdown格式化工具实现
1. 项目概述与核心价值最近在折腾文档自动化生成工具时,发现了一个挺有意思的项目,叫looseleaf-acrylic560/claude-md-generator。乍一看这个名字,你可能觉得它就是个普通的Markdown生成器,但实际用下来,我发现它远不止…...
别再为无人机航拍小目标漏检发愁了!用SAHI+YOLOv5n搞定高清图像识别(附完整代码)
无人机航拍小目标检测实战:SAHIYOLOv5n的高效解决方案 在广袤的农田上空,一架无人机正在执行例行巡检任务。高清摄像头捕捉到的画面中,几个微小的黑点引起了操作员的注意——那是几株感染病虫害的作物,它们在整幅图像中只占据不到…...
如何通过DLSS版本管理工具提升30%游戏性能:实战指南
如何通过DLSS版本管理工具提升30%游戏性能:实战指南 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款开源游戏性能优化工具,专门用于管理DLSS、FSR和XeSS动态库版本。你是否曾…...
终极免费Switch模拟器yuzu:解决电脑玩任天堂游戏的5大痛点
终极免费Switch模拟器yuzu:解决电脑玩任天堂游戏的5大痛点 【免费下载链接】yuzu 任天堂 Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu 想在电脑上畅玩Switch游戏却总是遇到各种问题?yuzu模拟器作为全球最受欢迎的开源任…...
