【数组】【快慢双指针】删除有序数组中的重复项+移除元素+删除有序数组中的重复项II

今天趁热打铁,接着刷了几道标签是【数组】的题,基本都是双指针就能解决。

1、删除有序数组中的重复项

在这里插入图片描述
该题对应力扣网址

class Solution {
public:int removeDuplicates(vector<int>& nums) {int i,j;int count = 0;int n = nums.size();nums.push_back(nums[n-1]);vector <int> nums1;for(i=0;i<n;i++){if(nums[i]==nums[i+1]){continue;}nums1[count] = nums[i];count++;}for(j=0;j<count;j++){nums[j]=nums1[j];}return count;}
};

在这里插入图片描述
搜了一下,原来vector是动态分布内存,在没有进行初始化之前不能使用下标的方式进行访问。改了之后就没问题了。

AC代码

class Solution {
public:int removeDuplicates(vector<int>& nums) {int i,j;int count = 0;int n = nums.size();vector <int> nums1(n,0);for(i=0;i<n;i++){if(i!=0 && nums[i]==nums[i-1]){continue;}nums1[count] = nums[i];count++;}for(j=0;j<count;j++){nums[j]=nums1[j];}return count;}
};

我的思路是又开辟了一个新的vector,把筛选之后不重复的存到新vector里,最后吧新vector的值赋给旧vector。
看了题解之后才知道,直接用双指针做其实更方便,不过和之前三数之和双指针不一样的地方是,这里用的是移向同一方向的快慢指针
具体方法在下面的题目中介绍。

2、移除元素

在这里插入图片描述

该题对应力扣网址

AC代码

class Solution {
public:int removeElement(vector<int>& nums, int val) {int i,j;int n = nums.size();//快慢指针int first=0,low=0;while(first<n){if(nums[first]==val){first++;continue;}nums[low] = nums[first];low++;first++;}return low;}
};

这道题我就用了快慢双指针的思想,因为需要在原本数字的基础上进行修改,所以就需要first指针走快点进行比较,low指针走慢点进行修改。代码还是写的挺浅显易懂的就不赘述了。

3、删除有序数组中的重复项ii

在这里插入图片描述

该题对应力扣网址

AC代码

class Solution {
public:int removeDuplicates(vector<int>& nums) {int i,j;int n = nums.size();//快慢指针int first=1,low=1;//计数器int count=1;while(first<n){if(nums[first]==nums[first-1]){count++;if(count<=2){nums[low] = nums[first];low++;}first++;continue;}count = 1;nums[low] = nums[first];low++;first++;}return low;}
};

跟上一个题的思路基本一致,不过写的时候,我也确实考虑到了能不能根据这个gap=2来想方法,不过使用的是count来计数。
去看了题解,它的方法更简洁巧妙,我写出来主要思想,大家就明白的差不多了,它的核心判断条件是nums[slow - 2] != nums[fast]。大家感兴趣的话可以移步去看详细代码。

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

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

相关文章

网络加密机的核心技术是什么

随着信息技术的飞速发展&#xff0c;网络已经成为现代社会不可或缺的基础设施。然而&#xff0c;网络空间的开放性和互联性也带来了诸多安全隐患&#xff0c;其中数据泄露和非法访问是最常见的问题。为了保障数据传输的安全性和完整性&#xff0c;网络加密机应运而生&#xff0…

为什么选择 ABBYY FineReader PDF ?

帮助用户们对PDF文件进行快速的编辑处理&#xff0c;同时也可以快速识别PDF文件里的文字内容&#xff0c;并且可以让用户们进行文本编辑&#xff0c;所以可以有效提升办公效率。 ABBYY-ABBYY Finereader 15 Win-安装包&#xff1a;https://souurl.cn/OY2L3m 高级转换功能 ABBY…

WARNING: pip is configured with locations that require TLS/SSL

在pycharm中运行pip下载软件包遇到该问题&#xff1a;WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available 原因&#xff1a;没有安装openssl&#xff1b; 到https://slproweb.com/products/Win32OpenSSL.ht…

Blender帧动画

时间线窗口Timeline用于定义帧动画 -视图&#xff1a;方法&#xff0c;平移&#xff0c;框显全部 -帧范围&#xff1a;可以调整动画共多少帧 -当前帧&#xff1a;可以拖动或手工指定 默认每秒24帧 定义一个帧动画类似unity的Timeline&#xff0c;只需定义关键帧&#xff0c…

MultiTrust:首个综合统一的多模态信任度基准(下)

2 实验 2.1 实验设计 实验设计基于对MLLMs可信度的全面理解&#xff0c;包括真实性、安全性、鲁棒性、公平性和隐私性五个主要方面。这些方面共同构成了一个综合框架&#xff0c;用于评估模型在防止不良结果和确保对用户社会影响的可靠性。 真实性&#xff08;Truthfulness&…

minIo ubuntu单节点部署

资源准备 minio二进制包 下载地址:https://dl.min.io/server/minio/release/linux-amd64/minio ubuntu-单节点部署 选择一台ubuntu18.04机器10.253.9.41、intel 或者 amd 64位处理器 上传minio到~目录 sudo cp minio /usr/local/bin/ sudo chmod x /usr/local/bin/minio 设…

变压器空载合闸励磁涌流的Simulink仿真

利用图 1所示的仿真模型分析三相变压器空载合闸过程时, 设置三相断路器模块 的切换时间为0s,仿真时间为 0.5s, 仿真算法为 ode23t 。三相断路器模块 QF2、故障模 块 Fault1 和 Fault2 在仿真中均不动作&#xff08;设置其切换时间大于仿真时间即可&#xff09;。 为了观察合闸时…

Java接口实现与类继承

学习初期发现接口实现与类继承很像&#xff0c;随着学习深入发现它们之间的联系与区别&#xff0c;整理如下&#xff1a; 经实验发现&#xff0c;实现接口的类中含有接口中的所有属性和方法&#xff0c;继承父类的子类中也含有父类中所有的属性和方法&#xff0c;可以说接口实…

车牌识别(附源代码)

完整项目已上传至github:End-to-end-for-chinese-plate-recognition/License-plate-recognition at master duanshengliu/End-to-end-for-chinese-plate-recognition GitHub 整体思路&#xff1a; 1.利用u-net图像分割得到二值化图像 2.再使用cv2进行边缘检测获得车牌区域坐…

11.1 Go 标准库的组成

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

内网穿透方法有哪些?路由器端口映射外网和软件方案步骤

公网IP和私有IP不能互相通讯。我们通常在局域网内部署服务器和应用&#xff0c;当需要将本地服务提供到互联网外网连接访问时&#xff0c;由于本地服务器本身并无公网IP&#xff0c;就无法实现。这时候就需要内网穿透技术&#xff0c;即内网映射&#xff0c;内网IP端口映射到外…

iOS 18 照片应用程序增加了新分类用于查找二维码、收据、插图等

苹果照片应用 苹果在iOS 18的照片应用中引入了全新的设计&#xff0c;将图库和推荐部分合并为一个更集成的多合一视图。重新设计的实用工具部分经过全面改造&#xff0c;使得查找不同类型的图片更加容易。 实用工具 在iOS 17中&#xff0c;照片应用的实用工具部分只包括导入…

【代码随想录】【算法训练营】【第36天】[452]用最少数量的箭引爆气球 [435]无重叠区间 [763]划分字母区间

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 LeetCode。 day 36&#xff0c;周三&#xff0c;最难坚持的一天~ 题目详情 [452] 用最少数量的箭引爆气球 题目描述 452 用最少数量的箭引爆气球 解题思路 前提&#xff1a;区间可能重叠 思路&#xff1a;…

自动控制:滑模控制(Sliding Mode Control, SMC)

自动控制&#xff1a;滑模控制(Sliding Mode Control, SMC) 滑模控制&#xff08;Sliding Mode Control, SMC&#xff09;是一种在处理非线性系统时非常有效的控制技术。它通过驱动系统状态达到并保持在特定的滑模面附近&#xff0c;来实现控制目标。本文将介绍滑模控制的基本…

潞晨训推一体机,画出大模型到企业的一条龙路线图

最近跟一位企业的CIO交流&#xff0c;对方关于大模型的认知让我惊呆了&#xff0c;他说&#xff0c;“听说做私域大模型要两千万的软件投入和两千万的算力投入&#xff0c;我们公司没有这个预算”。 于是我问道&#xff1a;“那如果按照你们公司的数据基础和业务场景&#xff0…

功能测试 之 单模块测试----轮播图、登录、注册

单功能怎么测&#xff1f; 需求分析 拆解测试点 编写用例 1.轮播图 &#xff08;1&#xff09;需求分析 位置&#xff1a;后台--页面--广告管理---广告列表(搜索index页面增加广告位2) 操作完成后需要点击admin---更新缓存,前台页面刷新生效 &#xff08;2&#xff09;拆解…

感受光子芯片中试线,如何点亮未来计算与通信的革命之路(2024青岛智能装备与通信技术展)

光子芯片中试线&#xff1a;点亮未来计算与通信的革命之路 在新一代信息技术的浪潮中&#xff0c;光子芯片以其低能耗、高速度的特点备受瞩目。首条光子芯片中试线的建立&#xff0c;标志着我国在光电子领域的重大突破&#xff0c;同时也为即将到来的量子计算时代奠定了坚实基…

Fantasy Icons Megapack(梦幻盔甲宝石图标魔法道具图标集)

所有图标都具备高质量&#xff0c;并以专业水平实施。任何幻想风格游戏的上佳选择。 - 可更新的超级资源包&#xff1b; - 每个图标的大小均为 256x256 像素 (PNG)&#xff1b; - 总计 2672 个独一无二的图标&#xff1b; - 所有图标均具有透明背景。 超级资源包内置&#xff1…

Linux常⽤服务器构建-samba

目录 1. 介绍 2. 安装 3. 配置 3.1 创建存放共享⽂件的路径 3.2 创建samba账户 4 重启samba 5. 访问共享⽂件 5.1 mac下访问⽅式 5.2 windows下访问⽅式 1. 介绍 Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的⼀个免费软件&#xff0c;能够完成在 windows 、 mac 操作系统…

卡塔尔.巴林:海外媒体投放-宣发.发稿效果显著提高

引言 卡塔尔和巴林两国积极采取措施&#xff0c;通过海外媒体投放和宣发&#xff0c;将本国的商业新闻和相关信息传达给更广泛的受众。在这一过程中&#xff0c;卡塔尔新闻网、巴林商业新闻和摩纳哥新闻网等媒体起到了关键作用。通过投放新闻稿&#xff0c;这些国际化的媒体平…