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

LeetCode 82. 删除排序链表中的重复元素 II

原题链接

难度:middle\color{orange}{middle}middle

题目描述

给定一个已排序的链表的头 headheadhead删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表

示例 1:

输入:head = [1,2,3,3,4,4,5]
输出:[1,2,5]
复制示例输入

示例 2:

输入:head = [1,1,1,2,3]
输出:[2,3]
复制示例输入

提示:

  • 链表中节点数目在范围 [0,300][0, 300][0,300]
  • −100<=Node.val<=100-100 <= Node.val <= 100100<=Node.val<=100
  • 题目数据保证链表已经按升序 排列

算法

(线性扫描) O(n)O(n)O(n)

为了方便处理边界情况,我们定义一个虚拟元素 dummy 指向链表头节点。
然后从前往后扫描整个链表,每次扫描元素相同的一段,如果这段中的元素个数多于1个,则将整段元素直接删除。

在这里插入图片描述

时间复杂度

整个链表只扫描一遍,所以时间复杂度是 O(n)O(n)O(n)

C++ 代码

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* deleteDuplicates(ListNode* head) {ListNode* dummy = new ListNode(0, head);auto p = dummy;while (p->next) {auto q = p->next;while (q && p->next->val == q->val) {q = q->next;}if (p->next->next == q) p = p->next;else p->next = q;}return dummy->next;}
};

相关文章:

LeetCode 82. 删除排序链表中的重复元素 II

原题链接 难度&#xff1a;middle\color{orange}{middle}middle 题目描述 给定一个已排序的链表的头 headheadhead &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,…...

tensorflow gpu环境安装

查看本电脑支持的最高cuda版本&#xff1a;nvidia-smi在~/.condarc修改conda 源&#xff1a;channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/- https://mirrors.tuna.tsinghua.edu.cn/…...

如何在现实场景中随心放置AR虚拟对象?

随着AR的发展和电子设备的普及&#xff0c;人们在生活中使用AR技术的门槛降低&#xff0c;比如对于不方便测量的物体使用AR测量&#xff0c;方便又准确&#xff1b;遇到陌生的路段使用AR导航&#xff0c;清楚又便捷&#xff1b;网购时拿不准的物品使用AR购物&#xff0c;体验更…...

操作系统-处理机调度

1.处理机调度的概念、层次1.1调度的基本概念制定某种规则来决定处理任务的顺序。1.2调度的三个层次高级调度&#xff08;作业调度&#xff09;中级调度&#xff08;内存调度&#xff09;进程的挂起态与七状态模型低级调度&#xff08;进程调度&#xff09;小结2.进程调度的时机…...

手机截图如何提取文字?

在当今信息爆炸的时代&#xff0c;图文并茂已经成为了一个广告宣传的常用方式。然而&#xff0c;图片中的文字信息往往难以获取&#xff0c;尤其对于那些需要快速获取信息的人们来说&#xff0c;阅读图片中的文字会是一项繁琐且费时的任务。现在&#xff0c;我们有一个好消息要…...

vue中复制内容

vue中复制内容vue2vue-clipboard2依赖项在main.js引入使用vue3vue-clipboard3依赖项引入使用更新于&#xff1a;2023-02-15vue2vue-clipboard2 依赖项 “vue”: “^2.6.11” “vue-clipboard2”: “^0.3.1” 在main.js引入 import VueClipboard from vue-clipboard2 Vue.us…...

MySQL CAST()函数用法

一、语法 expr&#xff1a;源数据&#xff0c;如字符串’China’。type&#xff1a;目标数据类型&#xff0c;例如CHAR。 cast(expr AS type)二、命令说明 将任何类型的值转换为具有指定类型的值。 CAST()函数通常用于返回具有指定类型的值&#xff0c;以便在WHERE&#xff…...

【测试工程师面试】详细记录 自己的一次面试

【测试工程师面试】详细记录 自己的一次面试 目录&#xff1a;导读 Linux基础 Oracle基础 编程基础 测试的基础 面试的问题 扯闲话部分&#xff1a; 10点刚到&#xff0c;先进行笔试&#xff0c;笔试的题目很基础&#xff0c;涉及到linux&#xff0c;涉及到oracle数据库…...

Elasticsearch 安装(二)

目录前言一、Linux 安装1、下载安装包⑴、选择需要的安装包⑵、下载解压到安装目录2、查看解压后目录结构3、启动 Elasticsearch⑴、正常启动流程⑵、启动过程遇到的问题①、启动报错②、创建运行 Elasticsearch 的用户&#xff0c;启动成功&#xff0c;但无法访问③、停止Elas…...

Java基础:异常与错误(ExceptionError)

1 缘起 某天上网冲浪时&#xff0c;偶然看到一个问题&#xff0c;说Java的Error和Exception有什么区别&#xff1f; 一句话&#xff1a;不知道。并不能很清晰地描述出个中区别。 当然&#xff0c;曾经也看过Throwable相关的知识&#xff0c;但是&#xff0c;并没有通过源码及注…...

VAmPI:一个包含了OWASP Top10漏洞的REST API安全学习平台

关于VAmPI VAmPI是一个包含了OWASP Top10漏洞的REST API安全学习平台&#xff0c;该平台基于Flask开发&#xff0c;该工具的主要目的是通过一个易受攻击的API来评估针对API安全检测工具的有效性&#xff0c;并帮助广大研究人员学习和了解API安全。 功能介绍 1、基于OWASP Top…...

springboot(6)之前端传递参数的方式 普通 集合 数组

实体类传递 首先我们在后端定义一个实体类&#xff0c;通过lombok插件重写 有参 无参 get set toString 方法, 然后前端发送数据&#xff0c;后端就会自动收到&#xff0c;然后属性填写 后端代码如下 AllArgsConstructor Data NoArgsConstructor public class role …...

redis分布式锁的演变过程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、直接添加Redis缓存二、使用setnx执行抢锁过程三、setnx获取锁+设置过期时间四、引入UUID解决误删锁问题五、引入Lua脚本来做删除六、对递归部分优化进行自旋七、添加自旋次数八、改为重入锁,使…...

leaflet 修改popup的样式,个性化弹窗(069)

第069个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中修改popup组件的样式,个性化弹窗。主要方法是更改css, 中增加custom-popup类名,style的样式要做穿透处理 >>>.具体方法请参考源代码。 直接复制下面的 vue+leaflet源代码,操作2分钟即可运行实…...

注解ConfigurationProperties、EnableConfigurationProperties的用法

1 ConfigurationProperties ConfigurationProperties主要作用就是将prefix属性指定的前缀配置项的值绑定到这个JavaBean上 &#xff0c;通过指定的前缀&#xff0c;来绑定配置文件中的配置。这样的好处是将配置数据与JOPO进行转换&#xff0c;能够管理一个类别的所有配置信息&…...

自适应布局之淘宝无限适配+rem+微信rpx自适应

一、自适应布局 所谓前端适配&#xff0c;就是为了让移动设计稿在大部分的移动设备上看起来有一致的展示效果&#xff0c;目前比较流行的方法有两种。一种是强制meta viewport宽度为设计稿宽度&#xff0c;一种是使用rem自适应布局的flexible.js。 二、当前流行的移动端自适应…...

esxi不能识别不兼容网卡解决方案

相信很多网友在安装测试VMWARE Esxi 6.0的时候&#xff0c;总会遇到无法兼容网卡的情况&#xff0c;本人也是遇到了再组装的台式机上测试ESXI 6.0的时候&#xff0c;无法识别REALTEK RTL 8111E的情况。 找了很多网友提供的博客&#xff0c;方法是正确的&#xff0c;但是不够严…...

Sizeof与Strlen的区别与联系

16年写了很多 C 与 C 相关的文章&#xff0c;但是后面从事了 Android 开发&#xff0c;就全部删掉了&#xff0c;无意中发现了这篇由还存在草稿箱&#xff0c;索性就找回来吧&#xff0c;也是追忆当年学习的青葱岁月 Sizeof与Strlen的区别与联系 一、sizeof sizeof(…)是运算…...

力扣(LeetCode)413. 等差数列划分(2023.02.15)

如果一个数列 至少有三个元素 &#xff0c;并且任意两个相邻元素之差相同&#xff0c;则称该数列为等差数列。 例如&#xff0c;[1,3,5,7,9]、[7,7,7,7] 和 [3,-1,-5,-9] 都是等差数列。 给你一个整数数组 nums &#xff0c;返回数组 nums 中所有为等差数组的 子数组 个数。 …...

蓝桥杯刷题——基础篇(一)

这部分题目&#xff0c;主要面向有志参加ACM与蓝桥杯竞赛的同学而准备的&#xff0c;蓝桥杯与ACM考察内容甚至评测标准基本都一样&#xff0c;因此本训练计划提供完整的刷题顺序&#xff0c;循序渐进&#xff0c;提高代码量&#xff0c;巩固基础。因竞赛支持C语言、C、Java甚至…...

深度解析:汇率结算下的货代对账困局,如何利用 AI 与 RPA 构建底层逻辑?

【前言】在国际物流与货运代理行业&#xff0c;财务对账向来是一块“硬骨头”。尤其是涉及跨国业务时&#xff0c;汇率的实时波动与多币种结算的交叉影响&#xff0c;使得原本复杂的账目核对工作呈几何倍数增加。传统的人工对账模式不仅效率低下&#xff0c;且在面对分位数的四…...

staticFunctional:嵌入式零堆内存的std::function替代方案

1. staticFunctional&#xff1a;嵌入式系统中零动态内存开销的 std::function 替代方案1.1 设计动因与工程痛点在资源受限的嵌入式系统&#xff08;如 ARM Cortex-M0/M4、AVR、ESP32、Teensy 系列&#xff09;中&#xff0c;std::function的标准实现存在根本性兼容障碍。其典型…...

Dify向量检索精度跃升47%的秘密(重排序Pipeline低延迟部署避坑手册)

第一章&#xff1a;Dify重排序算法精度跃升47%的核心动因解析Dify v0.12.0 引入的重排序&#xff08;Reranking&#xff09;模块并非简单叠加模型&#xff0c;而是通过三重协同优化机制实现精度质变。核心突破在于将传统单阶段打分范式升级为「语义对齐—上下文感知—动态归一化…...

PCB Layout实战:信号走线绕过ESD/TVS管,为何防护会失效?

1. 信号走线绕过ESD/TVS管的隐患 很多工程师在PCB设计时都听过一个原则&#xff1a;信号走线要先经过ESD/TVS保护器件&#xff0c;再连接到被保护芯片。但在实际项目中&#xff0c;由于空间限制或布线困难&#xff0c;经常会出现信号线先连接到芯片&#xff0c;再绕回保护器件的…...

3步永久保存喜马拉雅VIP音频:xmly-downloader-qt5全功能测评

3步永久保存喜马拉雅VIP音频&#xff1a;xmly-downloader-qt5全功能测评 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 xmly-down…...

HunyuanVideo-Foley实战案例:为AI生成视频自动匹配Foley音效工作流

HunyuanVideo-Foley实战案例&#xff1a;为AI生成视频自动匹配Foley音效工作流 1. 项目背景与价值 在视频制作领域&#xff0c;Foley音效&#xff08;环境音、动作音效等&#xff09;的创作往往需要专业录音设备和大量人工处理。HunyuanVideo-Foley创新性地将视频生成与音效生…...

MAA明日方舟自动化助手:5分钟快速上手完整指南

MAA明日方舟自动化助手&#xff1a;5分钟快速上手完整指南 【免费下载链接】MaaAssistantArknights 一款明日方舟游戏小助手 项目地址: https://gitcode.com/GitHub_Trending/ma/MaaAssistantArknights 还在为《明日方舟》重复刷图、基建管理而烦恼吗&#xff1f;MAA助手…...

so-vits-svc声压级标准化终极指南:避免音质损伤的10个关键步骤

so-vits-svc声压级标准化终极指南&#xff1a;避免音质损伤的10个关键步骤 【免费下载链接】so-vits-svc SoftVC VITS Singing Voice Conversion 项目地址: https://gitcode.com/gh_mirrors/so/so-vits-svc 你是否在使用so-vits-svc进行语音转换时&#xff0c;遇到过输出…...

如何用RSPrompter提升遥感图像分割效果?基于SAM的实战技巧分享

如何用RSPrompter提升遥感图像分割效果&#xff1f;基于SAM的实战技巧分享 遥感图像分割一直是计算机视觉领域的难点之一。传统方法往往需要大量标注数据&#xff0c;而标注成本高昂&#xff0c;尤其是对于高分辨率遥感影像。2023年Meta发布的Segment Anything Model(SAM)展现了…...

TradingView图表库集成宝典:15+主流框架实战指南

TradingView图表库集成宝典&#xff1a;15主流框架实战指南 【免费下载链接】charting-library-examples Examples of Charting Library integrations with other libraries, frameworks and data transports 项目地址: https://gitcode.com/gh_mirrors/ch/charting-library-…...