【力扣刷题实战】(顺序表)移除元素

大家好,我是小卡皮巴拉 

文章目录  

目录

力扣题目: 移除元素

题目描述

示例 1:

示例 2:

解题思路

具体思路

题目要点

完整代码

兄弟们共勉 !!! 


每篇前言 

博客主页:小卡皮巴拉

咱的口号:🌹小比特,大梦想🌹

作者请求:由于博主水平有限,难免会有错误和不准之处,我也非常渴望知道这些错误,恳请大佬们批评斧正。

 

力扣题目: 移除元素

原题链接:移除元素

题目描述

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。

假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作:

  • 更改 nums 数组,使 nums 的前 k 个元素包含不等于 val 的元素。nums 的其余元素和 nums 的大小并不重要。
  • 返回 k

示例 1:

输入:nums = [3,2,2,3], val = 3
输出:2, nums = [2,2,_,_]
解释:你的函数函数应该返回 k = 2, 并且 nums 中的前两个元素均为 2。
你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。

示例 2:

输入:nums = [0,1,2,2,3,0,4,2], val = 2
输出:5, nums = [0,1,4,0,3,_,_,_]
解释:你的函数应该返回 k = 5,并且 nums 中的前五个元素为 0,0,1,3,4。
注意这五个元素可以任意顺序返回。
你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。

解题思路

我们在这里用到双指针法来进行数组去重:给定一个排序数组,需要在原地删除重复出现的元素,使每个元素只出现一次,并返回移除后数组的新长度。可以使用快慢指针来实现,快指针用于遍历数组,慢指针用于指向已处理元素的最后一个位置。

具体思路

  1. 初始化双指针
    • 使用两个指针 dst 和 src,都初始化为0。
    • dst 指针用于记录当前不等于 val 的元素应该放置的位置(即目标位置)。
    • src 指针用于遍历整个数组。
  2. 遍历数组
    • 遍历数组 nums,使用 src 指针从0开始遍历。
    • 如果 nums[src] 不等于 val,则将 nums[src] 的值赋给 nums[dst],并且 dst 指针向后移动一位(dst++,在Python中表示为 dst += 1)。
    • 如果 nums[src] 等于 val,则只移动 src 指针,dst 指针保持不变。
  3. 返回结果
    • 遍历完成后,dst 指针的值即为不等于 val 的元素数量。
    • 返回 dst 即可。

题目要点

原地操作:不增加额外空间,直接在原数组上修改。

双指针:利用两个指针遍历数组,一个记录结果,一个用于遍历。

顺序可变:输出元素可不必保持原顺序。

返回数量:最终返回非目标值的元素数量。

完整代码(C语言)

int removeElement(int* nums, int numsSize, int val) 
{int dst,src = 0;while(src < numsSize){//src的值为val,src往后走//src的值不为val,src赋值给dst,src和dst都往后走if(nums[src] != val){nums[dst] = nums[src];dst++;}src++;}return dst;
}

兄弟们共勉 !!! 

码字不易,求个三连

抱拳了兄弟们!

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

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

相关文章

【新品发布】数字能源EMS管理再掀新篇章

致远电子EM系列工商业储能网关累计装机容量突破2GWh&#xff01;聚焦数字综合能源应用&#xff0c;全新一代EM-800/EM-1000G发布&#xff0c;见证光储充时代的来临&#xff01; 早在2008年&#xff0c;致远电子的工程师在为国内某新能源企业设计光伏通讯管理机方案时&#xff0…

Leetcode 50. Pow ( x , n ) 快速幂、取模 C++实现

问题&#xff1a;Leetcode 50. Pow ( x , n ) 实现 pow(x, n) &#xff0c;即计算 x 的整数 n 次幂函数。 算法&#xff1a; 具体实现流程如下&#xff1a; 代码&#xff1a; class Solution { public:double myPow(double x, int N) {double ans 1;long long n N;if (n <…

研究生异地报名,需要社保缴费记录,没有社保记录怎么办。

1、户籍在安徽省&#xff0c;在北京工作&#xff0c;想报北京科技大学&#xff1b; 招生简章中没有提社保记录&#xff0c;但是在报名的时候&#xff0c;又出来要求&#xff1a;北京连续6个月的社保记录。这里是指在北京市考试的要求。没有连续社保缴费记录&#xff0c;肯定不能…

软考《信息系统运行管理员》- 4.1信息系统软件运维概述

4.1信息系统软件运维概述 信息系统软件运维的概念 信息系统软件运维是指信息系统软件在开发完成投入使用后&#xff0c;对信息系统软件进行的改正 性维护、适应性维护、完善性维护、预防性维护等软件工程活动。 信息系统软件的可维护性及维护类型 信息系统软件维护工作直接…

dvwa:sql注入、sql盲注全难度解析

sql注入 easy 单引号闭合 id2 and if(11,sleep(3),1) and 11 ​ 联合注入&#xff1a; id2 union select database(),user() -- ​ 报错注入&#xff1a; id2 and updatexml(1,concat(0x7e,database(),0x7e),1) -- medium mysql_real_escape_string() 调用 mysql 库的函数 mys…

gbase8s的事务、并发控制、锁机制、隔离级别

一、事务概念 事务是指作为单个逻辑工作单元执行的一系列操作。事务处理可以确保除非事务性单元内的所有操作都成功完成&#xff0c;否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元&#xff0c;可以简化错误恢复并使应用程序更…

SpringBoot美发店解决方案:打造智能门店

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理美发门店管理系统的相关信息成为必然。开发…

收银系统源码营销活动-商品组合套餐

1. 功能描述 商品组合套餐&#xff1a;商家可以把不同的商品组合成套餐在收银台售卖&#xff0c;同时可以利用该套餐做一些会员拉新活动&#xff0c;如设置该活动仅限会员用户才可以购买等。还可以针对套餐的商品选择进行设置&#xff0c;如超市开业活动&#xff0c;价值19.8元…

JVM性能调优-JVM工具使用

命令行工具 jps jps -q 只看进程id jps -l 显示java进程的完整类名 jps -m 查看传递给主类main()的参数 jps -v 列出虚拟机启动时的jvm参数 以上参数可以组合使用 jstat 查看JVM统计信息 例&#xff1a;jstat -gc -t 19788 1000 10 -gc&#xff1a;打印gc统计信息 ;-t&am…

微信+AI应用平台之BotChoice 插件实现灵活调用扣子、dify

github地址&#xff1a;https://github.com/javak8/bot_choice.git 说明 BotChoice项目插件是作者原创插件, 根据提示词调用不同bot/model,可以实现多指令执行 目前bot/model只支持openai接口规范 可以多指令执行 &#xff0c;比如&#xff1a; /热点文案 /搜图片 杭州超市…

【Elasticsearch 实战与原理解析】好书推荐

Elasticsearch 实战与原理解析 在当今这个信息爆炸的时代&#xff0c;数据的存储、检索和分析变得越来越重要。Elasticsearch&#xff0c;作为一个基于 Lucene 的开源搜索引擎&#xff0c;以其强大的全文搜索能力、分布式特性和易用性&#xff0c;成为了数据检索领域的佼佼者。…

基于Java实现(APP)智能停车场管理系统

移动应用开发系统设计说明书&#xff08;智能停车场管理系统&#xff09; 服务集成流程详细设计 实现功能 序号功能点1新增用户2注册用户3修改场地信息4列出场地信息5新增认证车辆6列出认证车辆7删除认证车辆8车辆进入信息录入9停车记录列表展示10出停车场信息录入 参数说明…

SOMEIP_ETS_178: Subscribe_using_wrong_SOMEIP_MessageID

测试目的&#xff1a; 验证DUT能够拒绝一个SOME/IP头部使用错误消息ID进行服务发现的SubscribeEventgroup消息&#xff0c;并以SubscribeEventgroupNAck作为响应。 描述 本测试用例旨在确保DUT遵循SOME/IP协议&#xff0c;当接收到一个使用错误消息ID的服务发现SubscribeEve…

找不到opencl.dll怎么办,4种有效的方法教你解决

1. OpenCL.dll 概述 1.1 定义与作用 OpenCL.dll 是 Open Computing Language&#xff08;开放计算语言&#xff09;的一个关键组件&#xff0c;它是一个动态链接库&#xff08;DLL&#xff09;文件&#xff0c;对实现 OpenCL 标准至关重要。OpenCL.dll 文件通常位于 Windows …

论文阅读:OpenSTL: A Comprehensive Benchmark of Spatio-Temporal Predictive Learning

论文地址&#xff1a;arxiv 摘要 由于时空预测没有标准化的比较&#xff0c;所以为了解决这个问题&#xff0c;作者提出了 OpenSTL&#xff0c;这是一个全面的时空预测学习基准。它将流行的方法分为基于循环和非循环模型两类。OpenSTL提供了一个模块化且可扩展的框架&#xff…

【Hadoop之Yarn】Yarn的搭建流程、概念和组成部分 以及 Yarn的历史日志jobHistory配置和三种调度器

文章目录 一、Yarn的搭建1、修改mapred-site.xml2、修改yarn-site.xml3、检查hadoop-env.sh 中是否配置了权限4、分发mapred-site.xml & yarn-site.xml 到另外两台节点上5、启动和停止yarn平台&#xff1a;6、同时启动hdfs和yarn&#xff1a;7、启动后jps进程&#xff08;包…

【一文讲透(番外篇)】如何编译安装KWDB v2.0.4数据库

KaiwuDB 浪潮集团是中国领先的云计算、大数据服务商&#xff0c;拥有浪潮信息、浪潮软件、浪潮数字企业三家上市公司。主要业务涉及计算装备、软件、云计算服务、新一代通信、大数据及若干应用场景。已为全球一百二十多个国家和地区提供IT产品和服务。 KaiwuDB 是浪潮控股的数据…

【Power Compiler手册】13.UPF多电压设计实现(16)

Golden UPF流程 Golden UPF流程是维护设计中UPF多电压电源意图的可选方法。它在整个综合、物理实现和验证步骤中使用原始的“Golden”UPF文件,以及由Design Compiler和IC Compiler II工具生成的supplemental UPF文件。图122比较了传统的UPF流程与Golden UPF流程。 Golden UPF…

如何提高LabVIEW编程效率

提高LabVIEW编程效率对开发者来说非常重要&#xff0c;尤其是在处理复杂项目或紧迫的开发周期时。以下是一些可以显著提升LabVIEW编程效率的技巧&#xff0c;从代码结构、工具使用到团队协作的多个角度进行详细分析&#xff1a; 1. 模块化设计 模块化设计 是提高代码可维护性和…

KPaaS平台多系统权限统一管理的便利性

多系统权限管理的困境如同枷锁般束缚企业发展&#xff0c;导致管理效率低下、操作流程复杂且权限不一致&#xff0c;给员工和企业带来诸多不便与风险。 免费体验多系统权限管理系统 www.kpaas.net 多系统权限给企业带来的不便利 &#xff08;一&#xff09;繁琐的登录与操作流…