算法-删除有序数组中的重复项

news/2024/4/12 18:29:10/文章来源:https://blog.csdn.net/weixin_61006262/article/details/136530168

Q:给你一个有序数组nums ,请你原地删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。

第一种解决方法:

def removeElement(nums, val):if not nums:return 0left, right = 0, len(nums) - 1while left <= right:if nums[left] == val:# 移动右侧非目标值元素到左侧while right >= left and nums[right] == val:right -= 1if right > left:nums[left] = nums[right]left += 1else:left += 1return left

第二种算法:

    def removeDuplicates(self, nums):left = 1for right in range(2, len(nums)):if nums[left] == nums[right] == nums[left-1]:continueelse:left += 1nums[left] = nums[right]return left + 1

两种查找算法思想并不相同。

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot+Ajax+redis实现隐藏重要接口地址

&#x1f3e1;浩泽学编程&#xff1a;个人主页 &#x1f525; 推荐专栏&#xff1a;《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》《项目实战》 &#x1f6f8;学无止境&#xff0c;不骄不躁&#xff0c;知行合一 文章目录 …

【Pytorch】论文复现 Vision Transformer (ViT)

文章目录 0. 进行设置1. 获取数据2. 创建Dataset和DataLoader3. 复现 ViT 论文&#xff1a;概述4. Equation 1: 将数据拆分为 patch 并创建类、位置和 patch 嵌入5. Equation 2: Multi-Head Attention (MSA)6. Equation 3: Multilayer Perceptron (MLP)7. 创建 Transformer 编码…

双链表的实现(数据结构)

链表总体可以分为三大类 一、无头和有头 二、单向和双向 三、循环和不循环 从上面分类得知可以组合成8种不同类型链表&#xff0c;其中单链表最为简单&#xff0c;双联表最为复杂&#xff0c;两种链表都实现后其余链表都不成问题。 我们前期博客已将完成了单向无头不循环链表…

【Python】进阶学习:pandas--read_excel()函数的基本使用

【Python】进阶学习&#xff1a;pandas–read_excel()函数的基本使用 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希…

ABAP 函数模块的异常抛出

函数模块的异常抛出 *&---------------------------------------------------------------------* *& Report Z_TEST_EXCEPTIONS_LHY *&---------------------------------------------------------------------* *& TYPE&#xff1a;Report *& Descriptio…

浅显易懂:WinForms、WPF和Electron的区别和优缺点

在开发桌面应用的时候&#xff0c;WinForms、WPF和Electron是绕不过去的三个技术栈&#xff0c;本文就详细据介绍了三者的区别和优缺点&#xff0c;帮助老铁们做个抉择。 一、winform wpf Electron 三者区别 WinForms、WPF和Electron是三种不同的框架和技术&#xff0c;用于开…

RabbitMQ架构详解

文章目录 概述架构详解核心组件虚拟主机&#xff08;Virtual Host&#xff09;RabbitMQ 有几种广播类型 概述 RabbitMQ是⼀个高可用的消息中间件&#xff0c;支持多种协议和集群扩展。并且支持消息持久化和镜像队列&#xff0c;适用于对消息可靠性较高的场合 官网https://www.…

零难度!台式电脑如何连接蓝牙耳机?简单几步完成

在当今数字化的生活中&#xff0c;蓝牙耳机因其无线便携性和高品质音效&#xff0c;成为了许多人喜爱的音频配件。对于台式电脑用户而言&#xff0c;或许一开始连接蓝牙耳机会让人感到陌生&#xff0c;但实际上&#xff0c;这一过程远比想象中简单。台式电脑如何连接蓝牙耳机&a…

常用css样式大全以及css属性代码大全

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 往期热门专栏回顾 专栏…

Ubuntu中,重命名文件夹下所有带有空格的文件名,将空格替换为其他字符

Ubuntu中&#xff0c;重命名文件夹下所有带有空格的文件名&#xff0c;将空格替换为其他字符 问题 运行网络训练报错&#xff0c;原因是数据集文件名存在空格&#xff0c;导致读取失败 解决方法 在Ubuntu中&#xff0c;您可以使用终端和一些简单的命令来重命名文件夹下所有…

啤酒:精酿啤酒与炖汤的温暖整合

在寒冷的冬夜&#xff0c;没有什么比一碗热腾腾的炖汤更能温暖人心。而当炖汤与Fendi Club啤酒相遇&#xff0c;这种温暖便达到了理想。它们在舌尖上演绎了一场美妙的交响曲&#xff0c;让人感受到无尽的舒适与满足。 Fendi Club啤酒&#xff0c;以其与众不同的麦香和细腻的泡沫…

微信小程序用户隐私保护指引设置

场景&#xff1a;开发小程序时&#xff0c;有时候需要获取用户隐私信息&#xff0c;在提交小程序审核时&#xff0c;需要填写一份隐私保护协议&#xff0c;经常由于填写不规范导致审核不通过&#xff0c;在网上找到了一份模块可供参考 步骤&#xff1a;小程序后台-》设置-》服…

一键清除JavaScript代码中的注释:使用正则表达式实现

这个正则表达式可以有效地匹配 JavaScript 代码中的各种注释&#xff0c;并且跳过了以 http: 或 https: 开头的链接。 /\/\*[\s\S]*?\*\/|\/\/[^\n]*|<!--[\s\S]*?-->|(?<!http:|https:)\/\/[^\n]*/gvscode 实战&#xff0c;ctrlF 调出查找替换工具&#xff0c;点…

在vue3中封装一个文件上传组件

因为在使用场景中可能会用到多个文件上传&#xff0c;如果每个都一个一个写慢慢就堆成ss了&#xff0c; 使用方法直接在父组件中v-model就可以简单使用 话不多说&#xff0c;直接上代码 <template><el-upload v-model:file-list"fileList" class"upl…

Java/JDK下载安装与环境配置安装(win11超详细图文版教程)

一&#xff1a;安装JDK 1.开始安装JDK 从Oracle官网进入&#xff08;Java Archive | Oracle&#xff09;下载安装文件。 然后往下滑&#xff0c;可以看到官方已经讲收费和免费的分开来了。 这边建议下载Java SE 8 (8u201 and earlier)&#xff0c;原因请看这个博主讲述的理由…

2023第二届陇剑杯网络安全大赛 SS Writeup

sevrer save_1 打开流量包文件过滤http流量 从这个/helloworld/greeting开始追踪TCP流 直接百度搜索payload 搜索得到这题flag就是CVE-2022-22965 sevrer save_2 追踪TCP流&#xff0c;在tcp.stream eq 106&#xff0c;发现反弹shell的IP和端口 这题flag为192.168.43.128:2333…

React-子传父

1.概念 说明&#xff1a;React中子组件向父组件传递数据通常涉及回调函数和状态提升等方法。 2.代码实现 2.1绑定事件 说明&#xff1a;父组件绑定自定义事件 <Son onGetSonMsg{getMsg}></Son> 2.2接受事件 说明&#xff1a;子组件接受父组件的自定义事件名称…

JVM—内存模型(JMM)

之前字节面试问到过Java内存模型&#xff0c;回答的是内存结构。重新学习了一下整理出来。 1、前置知识 通信是指线程之间如何交换信息&#xff0c;主要有两种机制&#xff1a;共享内存 和 消息传递&#xff0c;共享内存指的是多个线程共享的数据区&#xff0c;A 线程写&#x…

ZJUBCA研报分享 | 《web3社交应用是否会成为区块链世界走向大规模应用的流量入口——以debox为例》...

ZJUBCA研报分享 引言 2023 年 11 月 — 2024 年初&#xff0c;浙大链协顺利举办为期 6 周的浙大链协加密创投训练营 &#xff08;ZJUBCA Community Crypto VC Course&#xff09;。在本次训练营中&#xff0c;我们组织了投研比赛&#xff0c;鼓励学员分析感兴趣的 Web3 前沿话题…

常见数据类型

目录 数据类型 字符串 char nchar varchar varchar2 nvarchar 数字 number integer binary_float binary_double float 日期 date timestamp 大文本数据 大对象数据 Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 数…