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

力扣:27. 移除元素

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝
int len = removeElement(nums, val);// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。
for (int i = 0; i < len; i++) {print(nums[i]);
}

示例 1:

输入:nums = [3,2,2,3], val = 3 输出:2, nums = [2,2] 解释:函数应该返回新的长度 2, 并且
nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nums =
[2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。

示例 2:

输入:nums = [0,1,2,2,3,0,4,2], val = 2 输出:5, nums = [0,1,4,0,3]
解释:函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0,
4。注意这五个元素可为任意顺序。你不需要考虑数组中超出新长度后面的元素。

提示:

0 <= nums.length <= 100
0 <= nums[i] <= 50
0 <= val <= 100

来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/remove-element/description/

我的代码:
方法一:笨办法。新建一个vector容器,将需要删除之外的元素按顺序push到新容器当中。

class Solution {
public:int removeElement(vector<int>& nums, int val) {if(nums.size()==0)return 0;vector<int> s;for(int i=0;i<nums.size();i++){if(nums[i]!=val){s.push_back(nums[i]);}}nums=s;return s.size();}
};

方法二:双指针法。

class Solution {
public:int removeElement(vector<int>& nums, int val) {int left  = 0; //指向当前可以放入元素的位置int right = 0; //指向当前遍历到的元素if(nums.size()==0)return 0;while(right<nums.size()){if(nums[right]==val){   //如果当前元素是需要删除的元素,right++;            //右指针直接后移}else{                   //否则赋值后,两个指针同时后移nums[left]=nums[right];left++;right++;}}return left;}
};

相关文章:

力扣:27. 移除元素

给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面…...

华为OD机试 - 剩余可用字符集(Python) | 机试题+算法思路+考点+代码解析 【2023】

剩余可用字符集 题目 给定两个字符集合 一个是全量字符集 一个是已占用字符集 已占用字符集中的字符不能再使用 要求输出剩余可用字符集 输入 输入一个字符串 一定包含@ @前为全量字符集 @后的为已占用字符集已占用字符集中的字符 一定是全量字符集中的字符 字符集中的字符跟…...

金三银四丨黑蛋老师带你剖析-安全开发岗

作者丨黑蛋在之前呢&#xff0c;我们聊了二进制这块的病毒岗位&#xff0c;漏洞岗位&#xff0c;逆向岗位以及CTF这块的岗位。今天我们就来聊一聊安全开发类的工作岗位。首先网络安全方向中安全开发岗位都有哪些&#xff0c;安全开发主要指安全研发工程师或安全开发工程师&…...

isNaN、Number.isNaN、isFinite、Number.isFinite

isNaN和Number.isNaN这两者都是为了判断参数是否为NaN类型。isNaN的实现原理是&#xff1a;通过Number()方法&#xff0c;尝试将参数转换成Number类型&#xff0c;如果成功返回false&#xff0c;如果失败返回true。isNaN只是判断传入的参数是否能转换成数字&#xff0c;并不是严…...

MyBatis分页插件

目录 分页插件 Mybatis插件典型适用场景 实现思考 第一个问题 第二个问题 自定义分页插件 分页插件使用 添加pom依赖 插件注册 调用 代理和拦截是怎么实现的 PageHelper 原理 分页插件 MyBatis 通过提供插件机制&#xff0c;让我们可以根据自己的需要去增强MyBati…...

Vue组件间通信的四种方式(函数回调,自定义事件,事件总线,消息订阅与发布)

目录 概述 props配置项-回调函数实现 自定义事件实现 事件总线实现 消息订阅与发布实现&#xff08;pubsub-js库&#xff09; 概述 在组件化编程中&#xff0c;组件间的通信是重要的&#xff0c;我们可以有四种方式实现组件间的通信。 分别是&#xff1a;函数回调&…...

华为OD机试真题Python实现【求字符串中所有整数的最小和】真题+解题思路+代码(20222023)

求字符串中所有整数的最小和 题目 说明 字符串 s,只包含 a-z A-Z + - ;合法的整数包括 1) 正整数 一个或者多个0-9组成,如 0 2 3 002 102 2)负整数 负号 - 开头,数字部分由一个或者多个0-9组成,如 -0 -012 -23 -00023🔥🔥🔥🔥🔥👉👉👉👉👉👉 华…...

行为型设计模式之中介者模式

中介者模式 中介者模式又称为调解者模式或调停者模式&#xff0c;属于行为型模式。它用一个中介对象封装系列的对象交互&#xff0c;中介者使各对象不需要显示地相互作用&#xff0c;从而使其耦合松散&#xff0c;而且可以独立地改变它们之间的交互。 中介者模式包装了一系列对…...

JDK8增加的特性

Java知识点总结&#xff1a;想看的可以从这里进入 目录13、JDK8增加的特性13.1、Lambda表达式13.2、方法的引用13.3、时间处理类13.4、接口增加方法13.5、注解新增13.6、Optional类13.7、Stream13、JDK8增加的特性 13.1、Lambda表达式 Lambda表达式和方法的引用 13.2、方法的…...

华为OD机试 - 求数组中最大n个数和最小n个数的和(Python) | 机试题+算法思路+考点+代码解析 【2023】

求数组中最大n个数和最小n个数的和 给定一个数组,编写一个函数, 计算他的最大N个数和最小N个数的和, 需要对数组进行去重。 输入 第一行输入M,M表示数组大小 第二行输入M个数,表示数组内容 第三行输入N表示需要计算的最大最小N的个数 输出 输出最大N个数和最小N个数的…...

如何写出更加契合浙大MBA项目提面申请资料?

现在已经是2月中旬了&#xff0c;最近看到上海很多院校都已经公布了提前面批次相应时间了&#xff0c;等浙大复试工作结束&#xff0c;马上提前面批次时间也会出来。本人2023浙大提面也拿到了优秀&#xff0c;结合本人经验&#xff0c;今天给大家分享下申请材料该如何撰写&…...

华为OD机试真题Java实现【比赛评分】真题+解题思路+代码(20222023)

比赛评分 题目 一个有N个选手参加比赛,选手编号为1~N(3<=N<=100),有M(3<=M<=10)个评委对选手进行打分。打分规则为每个评委对选手打分,最高分10分,最低分1分。 请计算得分最多的3位选手的编号。如果得分相同,则得分高分值最多的选手排名靠前(10分数量相…...

【linux】——gcc/g++,make/makefile的简单使用

目录 1.gcc的基本使用 2.Linux下的静态库和动态库的理解 3.Linux项目自动化构建工具——make/makefile 1.gcc的基本使用 gcc是专门用来编译c语言的 g是专门用来编译c的&#xff0c;但是g也能够用来编译c语言 预处理&#xff08;进行宏替换&#xff09; 预处理功能主要包括宏…...

追梦之旅【数据结构篇】——详解C语言动态实现带头结点的双向循环链表结构

详解C语言动态实现带头结点的双向循环链表结构~&#x1f60e;前言&#x1f64c;预备小知识&#x1f49e;链表的概念及结构&#x1f64c;预备小知识&#x1f49e;链表的概念及结构&#x1f64c;带头结点的双向循环链表结构&#x1f64c;整体实现内容分析&#x1f49e;1.头文件编…...

华为OD机试真题Python实现【水仙花数 2】真题+解题思路+代码(20222023)

水仙花数 2 题目 给定非空字符串 s,将该字符串分割成一些子串 使每个子串的 ASCII 码值的和均为水仙花数 若分割不成功则返回 0若分割成功且分割结果不唯一 则返回-1若分割成功且分割结果唯一 则返回分割后子串的数目 🔥🔥🔥🔥🔥👉👉👉👉👉👉 华为OD机…...

【原创】java+swing+txt学生学籍管理系统设计与实现

今天我们来介绍如何使用javaswingtxt来开发一个学籍管理系统。对的&#xff0c;你没看错&#xff0c;我们今天不用mysql&#xff0c;我们使用txt这个文本来进行数据存储&#xff0c;主要考察对文件读写的操作。 功能分析&#xff1a; 我们系统不要求做的很复杂&#xff0c;只…...

GCN项目实战1-SimGNN

文章目录SimGNN&#xff1a;快速图相似度计算的神经网络方法1. 数据2. 模型2.1 python文件功能介绍2.2 重要函数和类的实现SimGNN&#xff1a;快速图相似度计算的神经网络方法 原论文名称&#xff1a;SimGNN: A Neural Network Approach to Fast Graph Similarity Computation…...

经过深思熟虑后的接口测试自动化的总结与思考

序近期看到阿里云性能测试 PTS 接口测试开启免费公测&#xff0c;本着以和大家交流如何实现高效的接口测试为出发点&#xff0c;本文包含了我在接口测试领域的一些方法和心得&#xff0c;希望大家一起讨论和分享&#xff0c;内容包括但不仅限于&#xff1a;服务端接口测试介绍接…...

电脑自带的录屏放在哪里了?轻松弄懂,看这篇文章就明白了

有很多小伙伴有这个疑问&#xff0c;电脑自带的录屏放在哪里了&#xff1f;其实&#xff0c;电脑自带的录屏工具并不是所有电脑都要&#xff0c;具体要看你的电脑品牌和操作系统&#xff0c;Windows系统和Mac系统的电脑都自带了录屏工具&#xff0c;下面跟着小编一起来看看吧。…...

华为OD机试真题Java实现【字符串分割】真题+解题思路+代码(20222023)

字符串分割 给定一个非空字符串S,其被N个‘-’分隔成N+1的子串,给定正整数K,要求除第一个子串外,其余的子串每K个字符组成新的子串,并用‘-’分隔。对于新组成的每一个子串,如果它含有的小写字母比大写字母多,则将这个子串的所有大写字母转换为小写字母;反之,如果它含…...

Bypass Paywalls Clean 3大突破策略:2024浏览器扩展技术指南

Bypass Paywalls Clean 3大突破策略&#xff1a;2024浏览器扩展技术指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 当你在撰写行业分析报告时&#xff0c;是否曾因关键数据被付费…...

SenseVoice Small企业级应用:法务合同语音审查+关键条款提取实战

SenseVoice Small企业级应用&#xff1a;法务合同语音审查关键条款提取实战 1. 项目背景与需求场景 在现代企业法务工作中&#xff0c;合同审查是一项频繁且重要的工作。传统的合同审查流程往往需要法务人员逐字阅读大量合同文本&#xff0c;耗时耗力且容易遗漏关键条款。特别…...

Eclipse Paho Android连接管理:自动重连与离线消息缓冲的完整实现指南

Eclipse Paho Android连接管理&#xff1a;自动重连与离线消息缓冲的完整实现指南 【免费下载链接】paho.mqtt.android Eclipse Paho是一个开源的物联网消息代理库。它支持多种协议&#xff0c;包括MQTT、AMQP和HTTP&#xff0c;并提供各种语言的客户端库。Paho适用于需要在物联…...

Qwen2.5-VL-7B-Instruct部署案例:律所合同图像关键条款高亮+法律依据自动关联

Qwen2.5-VL-7B-Instruct部署案例&#xff1a;律所合同图像关键条款高亮法律依据自动关联 1. 这不是普通OCR&#xff0c;是懂法的视觉助手 你有没有遇到过这样的场景&#xff1a;律所助理收到客户发来的扫描版PDF合同&#xff0c;需要在30分钟内标出违约责任、管辖法院、保密义…...

如何用G-Helper实现CPU降压调优:华硕笔记本用户的散热与续航提升指南

如何用G-Helper实现CPU降压调优&#xff1a;华硕笔记本用户的散热与续航提升指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other mo…...

告别硬编码!Activiti7流程变量与监听器实战:动态分配审批人与业务数据流转

Activiti7流程变量与监听器实战&#xff1a;动态审批人分配与业务数据流转 在业务流程管理&#xff08;BPM&#xff09;领域&#xff0c;硬编码审批人始终是系统灵活性的主要障碍。当组织架构调整或审批规则变化时&#xff0c;传统方案往往需要重新部署流程定义。本文将深入探…...

SDMatte与LSTM时序模型结合:处理视频连续帧的稳定抠图

SDMatte与LSTM时序模型结合&#xff1a;处理视频连续帧的稳定抠图 1. 引言&#xff1a;视频抠图的挑战与机遇 视频抠图技术一直是影视后期和直播领域的核心需求。传统方法在处理动态场景时常常面临边缘闪烁、细节丢失和时间不一致等问题。想象一下&#xff0c;当你在视频会议…...

OpenClaw+nanobot备份方案:自动化配置与数据同步

OpenClawnanobot备份方案&#xff1a;自动化配置与数据同步 1. 为什么需要备份nanobot环境 上周我的开发机突然硬盘故障&#xff0c;导致辛苦配置了两个月的nanobot环境全部丢失。那一刻我才深刻意识到&#xff0c;对于这种高度定制化的AI自动化系统&#xff0c;没有备份方案…...

2026最新大模型应用开发学习路线(附时间规划,小白/程序员必收藏)

一、先破局&#xff1a;初学者必看&#xff01;Python 还是 Java 选对不踩坑 很多小白和入门程序员&#xff0c;刚接触大模型开发就卡在编程语言选择上&#xff0c;浪费大量时间纠结。不绕弯子&#xff0c;直接给结论&#xff0c;结合AI开发场景帮你精准选择&#xff0c;新手直…...

动态数据源配置加密终极指南:如何选择最安全的填充模式保护敏感数据 [特殊字符]️

动态数据源配置加密终极指南&#xff1a;如何选择最安全的填充模式保护敏感数据 &#x1f6e1;️ 【免费下载链接】dynamic-datasource dynamic datasource for springboot 多数据源 动态数据源 主从分离 读写分离 分布式事务 项目地址: https://gitcode.com/gh_mirrors/dy/…...