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

链表OJ(七)删除有序链表中重复的元素-I -II

目录

删除有序链表中重复的元素-I

删除有序链表中重复的元素-II


删除有序链表中重复的元素-I

描述

删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次
例如:
给出的链表为1→1→21→1→2,返回1→21→2.
给出的链表为1→1→2→3→31→1→2→3→3,返回1→2→31→2→3.

【解法一】哈希遍历删除(该方法下面俩道题均适合)

哈希表遍历一遍,对每个元素出现次数统计,然后再遍历第二遍,将结点元素出现次数出现超过俩次的全部删除

【解法二】直接删除

 使用哑结点pre来进行删除,如果pre与cur值相等,就用pre删掉cur,如果不相等俩个一起后移就行

class Solution {
public:ListNode* deleteDuplicates(ListNode* head) {// write code hereauto newhead = new ListNode(-1);newhead->next = head;auto pre = newhead, cur = head;while(cur){if(cur->val == pre->val){pre->next = cur->next;    // 相等进行删除cur = pre->next;}else {pre = pre->next;    // 不相等后移cur = cur->next;}}return newhead->next;}
};

 删除有序链表中重复的元素-II

描述

给出一个升序排序的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。
例如:
给出的链表为1→2→3→3→4→4→51→2→3→3→4→4→5, 返回1→2→51→2→5.
给出的链表为1→1→1→2→31→1→1→2→3, 返回2→32→3.

【解法一】直接删除

 利用pre来删除后面有相等元素的结点,每次循环定义一个Next,利用Next与cur进行比较,如果如果Next的值等于cur,那么Next不断后移(注意Next判空存在),直到找到一个nullptr或者与cur不相等的结点为止,利用pre删除中间相等的结点

 直到找到一个nullptr或者与cur不相等的结点为止,利用pre删除中间相等的结点

class Solution {
public:ListNode* deleteDuplicates(ListNode* head) {// write code hereListNode* newhead = new ListNode(-1);newhead->next = head;auto pre = newhead, cur = head, Next = head;while(cur){Next = cur->next;if(Next && cur->val == Next->val){while(Next && cur->val == Next->val){Next = Next->next;    // Next遍历至最后一个不相等结点或者空节点}pre->next = Next;    // 利用pre进行删除cur = Next;        // 更新cur}else {pre = pre->next;    // 如果俩结点不相等,cur pre一起后移cur = cur->next;}}return newhead->next;}
};

【解法二】哈希遍历删除

哈希表遍历一遍,对每个元素出现次数统计,然后再遍历第二遍,将结点元素出现次数出现超过俩次的全部删除

 

相关文章:

链表OJ(七)删除有序链表中重复的元素-I -II

目录 删除有序链表中重复的元素-I 删除有序链表中重复的元素-II 删除有序链表中重复的元素-I 描述 删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次 例如: 给出的链表为1→1→21→1→2,返回1…...

C语言经典编程题100例(81~100)

目录81、习题7-7 字符串替换82、习题8-10 输出学生成绩83、习题8-2 在数组中查找指定元素84、习题8-3 数组循环右移85、题8-9 分类统计各类字符个数86、习题9-2 计算两个复数之积87、习题9-6 按等级统计学生成绩88、习题11-1 输出月份英文名89、习题11-2 查找星期90、练习10-1 …...

ChIP-seq 分析:数据质控实操(5)

1. 数据 今天将继续回顾我们在上一次中研究的 Myc ChIPseq。这包括用于 MEL 和 Ch12 细胞系的 Myc ChIPseq 及其输入对照。 可在此处[1]找到 MEL 细胞系中 Myc ChIPseq 的信息和文件可在此处[2]找到 Ch12 细胞系中 Myc ChIPseq 的信息和文件可以在此处[3]找到 MEL 细胞系的输入…...

java黑马头条 day5自媒体文章审核 敏感词过滤算法DFA 集成RabbitMQ实现自动审核

自动审核流程介绍 做为内容类产品,内容安全非常重要,所以需要进行对自媒体用户发布的文章进行审核以后才能到app端展示给用户。2 WmNews 中status 代表自媒体文章的状态 status字段:0 草稿 1 待审核 2 审核失败 3 人工审核 4 人工审核通过 …...

python--matplotlib(1)

前言 Matplotlib画图工具的官网地址是 http://matplotlib.org/ Python环境下实现Matlab制图功能的第三方库,需要numpy库的支持,支持用户方便设计出二维、三维数据的图形显示。 正文 1.arange函数 arange函数需要三个参数,分别为起始点、终止…...

华为OD机试题 - 获取最大软件版本号(JavaScript)

最近更新的博客 华为OD机试题 - 任务总执行时长(JavaScript) 华为OD机试题 - 开放日活动(JavaScript) 华为OD机试 - 最近的点 | 备考思路,刷题要点,答疑 【新解法】 华为OD机试题 - 最小步骤数(JavaScript) 华为OD机试题 - 任务混部(JavaScript) 华为OD机试题 - N 进…...

字符函数和字符串函数

字符串以\0为结束标志&#xff0c;strlen函数返回的是’\0’前的字符个数&#xff0c;不包括\0参数的指向的字符串必须是\0为结束标志&#xff0c;不然结果不确定函数的返回类型是size_t(无符号的整型&#xff09;strlen的使用#include <stdio.h> #include <string.h&…...

【猜名次】-C语言-题解

1. 描述&#xff1a; 5位运动员参加了10米台跳水比赛&#xff0c;有人让他们预测比赛结果&#xff1a; A选手说&#xff1a;B第二&#xff0c;我第三&#xff1b; B选手说&#xff1a;我第二&#xff0c;E第四&#xff1b; C选手说&#xff1a;我第一&#xff0c;D第二&#x…...

对 equals() 和 hashCode() 的理解?

在 java.lang.Object 类中有两个非常重要的方法&#xff1a; public native int hashCode(); public boolean equals(Object obj) {return (this obj); }Object 类是类继承结构的基础&#xff0c;是每一个类的父类&#xff0c;都实现了Object 类中定义的方法。 equals()方法…...

IDEA插件安装慢、超时、不成功问题如何解决?

目录 一、打开国内插件的节点IP地址 二、修改本地hosts文件 三、刷新DNS缓存 一、打开国内插件的节点IP地址 国内插件的节点IP地址查询: http://tool.chinaz.com/speedtest/plugins.jetbrains.com 在下方的检测结果中&#xff0c;找到一个解析时间最短的IP地址&#xff0c;解…...

软考高级之信息系统案例分析七重奏-《5》

五十、项目需求管理可能存在的问题。 1、未制定项目需求管理计划; 2、项目沟通存在问题; 3、项目经理缺乏必要的项目管理经验; 4、没有有效地管理需求变更控制; 5、没有有效地维护对需求进行跟踪管理; 6、没有按照规范的需求开发和需求管理的内容和流程开展需求工作…...

JUC并发编程 Ⅳ -- 共享模型之无锁

文章目录CAS 与 volatile问题引入代码分析volatile为什么无锁效率高CAS特点原子整数原子引用ABA 问题及解决原子数组原子(字段)更新器原子累加器UnsafeUnsafe CAS 操作管程即 monitor 是阻塞式的悲观锁实现并发控制&#xff0c;本文我们将通过非阻塞式的乐观锁的来实现并发控制…...

Spring之AOP实现

1. AOP的实现方式 使用AspectJ的编译器来改动class类文件实现增强(使用不广泛) ----- 编译阶段 这种对class类文件增强的, 也可以增强static静态方法, 而通过代理方式就无法实现静态方法的增强 可通过查看编译后class文件反编译后的java代码验证 agent增强(使用不广泛) ----- 类…...

Spring之基于xml的自动装配、基于Autowired注解的自动装配

文章目录基于xml的自动装配①注解②扫描③新建Maven Module④创建Spring配置文件⑤标识组件的常用注解⑥创建组件⑦扫描组件⑧测试⑨组件所对应的bean的id基于注解的自动装配①场景模拟②Autowired注解③Autowired注解其他细节④Autowired工作流程Autowire 注解的原理Qualifier…...

【案例】--(非分布式)轻量级任务调度平台

目录 一、前言说明二、背景2.1、完成任务,顺便搭建了一个任务调度平台三、具体实现解析3.1、技术栈等选型3.2、完成具体功能解析(1)、支持基本任务功能(2)、支持日志收集功能(3)、支持用户异常,选择性关闭调度功能(4)、实时监控正在执行和任务队列的任务情况(5)、实时监控任务…...

key的作用原理与列表的遍历、追加、搜索、排序

目录 一、key的作用原理 二、实现列表遍历并对在列表最前方进行追加元素 三、实现列表过滤搜索 1、用computed计算属性来实现 2、用watch监听输入值的变化来实现 四、按年龄排序输出列表 一、key的作用原理 1. 虚拟DOM中key的作用&#xff1a; key是虚拟DOM对象的标识&a…...

SQL性能优化的47个小技巧,你了解多少?

收录于热门专栏Java基础教程系列&#xff08;进阶篇&#xff09; 1、先了解MySQL的执行过程 了解了MySQL的执行过程&#xff0c;我们才知道如何进行sql优化。 客户端发送一条查询语句到服务器&#xff1b;服务器先查询缓存&#xff0c;如果命中缓存&#xff0c;则立即返回存…...

DPDK — 数据加速方案的核心思想

目录 文章目录 目录DPDK 数据加速方案1、使用用户态协议栈来代替内核协议栈Linux UIO FrameworkDPDK UIO Framework2、使用轮训来代替中断Kernelspace igb_uio DriverUserspace PMD3、使用多核编程代替多线程无锁环队列:CPU 核间无锁通信DPDK 数据加速方案...

[python入门㊽] - 自定义异常 raise 关键字

目录 ❤ 自定义抛出异常关键字 - raise ❤ 使用raise主动引发异常 ❤ raise 关键字的用法 ❤ 触发异常 ❤ 自定义异常类 在前面我们学过异常三个关键字分别是try、except 以及 finally 在编程过程中合理的使用异常可以使得程序正常的执行。有直接抛出异常的形式&…...

DDOS攻击

注&#xff1a;本博客只是为了自己的学习&#xff0c;记录自己的学习&#xff0c;请勿用于其他途径、1、winR-->cmd2、ping 网站3、替换IP1 import java.io.BufferedInputStream;2 import java.io.IOException;3 import java.net.MalformedURLException;4 import java.net.U…...

Octomap在二维导航地图转换中的常见问题与优化策略

1. Octomap二维地图转换的核心挑战 第一次接触Octomap进行三维到二维地图转换时&#xff0c;我被它强大的空间建模能力吸引&#xff0c;但实际操作中踩了不少坑。最典型的就是发现生成的二维地图要么全是噪点&#xff0c;要么和实际环境对不上。后来才明白&#xff0c;这背后涉…...

Meta2d.js完整指南:5步掌握专业级2D可视化引擎开发

Meta2d.js完整指南&#xff1a;5步掌握专业级2D可视化引擎开发 【免费下载链接】meta2d.js The meta2d.js is real-time data exchange and interactive web 2D engine. Developers are able to build Web SCADA, IoT, Digital twins and so on. Meta2d.js是一个实时数据响应和…...

手把手教你用Simulink和Carsim 2019搭建车辆动力学模型(附二自由度模型源码)

从零构建车辆动力学联合仿真模型&#xff1a;Simulink与Carsim 2019实战指南 当你第一次打开Carsim和Simulink时&#xff0c;面对两个庞大软件的无缝对接需求&#xff0c;很容易陷入"从哪开始"的困惑。本文将带你一步步搭建完整的车辆动力学仿真环境&#xff0c;从软…...

stm32cubeide+freertos+c/c++混合编程实战避坑指南

1. STM32CubeIDE与FreeRTOS环境搭建避坑指南 第一次用STM32CubeIDE配置FreeRTOS时&#xff0c;我对着时钟源选项纠结了半小时。后来发现这个选择直接影响系统稳定性——选错时钟源会导致任务调度像喝醉了一样飘忽不定。实测推荐用TIM6替代默认的SysTick作为时基&#xff0c;原因…...

管道巡检软体机器人 YOLOv8 模型部署全流程(PT→ONNX→昇腾OM)

项目背景&#xff1a;本项目针对搭载摄像头的管道内部巡检软体机器人开发&#xff0c;实现管道内部缺陷、障碍物、异物的实时AI检测&#xff0c;完成从PC端训练到边缘端部署的完整链路。 开源仓库&#xff1a;AtomGit 公开仓库 适配设备&#xff1a;香橙派AIPro&#xff08;搭…...

Linux服务器上Ollama离线安装全攻略(附systemd服务配置)

Linux服务器上Ollama离线安装全攻略&#xff08;附systemd服务配置&#xff09; 在企业内网或实验室环境中&#xff0c;离线部署AI工具往往面临诸多挑战。本文将手把手带你完成Ollama在Linux服务器上的完整离线安装流程&#xff0c;特别针对无外网访问权限的场景优化&#xff0…...

给客户发固件,别再傻傻传源码了!手把手教你用ESP32 Download Tool烧录PlatformIO生成的bin文件

专业级ESP32固件交付方案&#xff1a;从PlatformIO编译到客户安全烧录全流程 当我们需要将开发完成的ESP32固件交付给客户时&#xff0c;直接发送源代码往往不是最佳选择。这不仅涉及知识产权保护问题&#xff0c;还可能因为客户缺乏开发环境而导致沟通成本激增。本文将详细介绍…...

永磁同步电机的 MTPA + 弱磁控制算法 Simulink 模型探索

永磁同步电机的MTPA弱磁控制算法simulink模型。 转速从4000变到16000转&#xff0c;效果较好&#xff0c;附赠核心模型对应公式文档。在电机控制领域&#xff0c;永磁同步电机&#xff08;PMSM&#xff09;因其高效、高功率密度等优点&#xff0c;被广泛应用于各种工业和民用场…...

B端企业拓客:如何在精准度与成本之间找到真正平衡?氪迹科技法人股东号码核验系统,阶梯式价格

在B端市场存量竞争愈发激烈的当下&#xff0c;“拓客精准度”与“获客成本”的平衡&#xff0c;成为所有B端企业都要面对的核心课题。对绝大多数深耕B端业务的企业而言&#xff0c;拓客之路始终被两大难题困扰&#xff1a;一方面&#xff0c;线索质量参差不齐&#xff0c;空号、…...

I3C协议学习总结

I3C可以使用推挽式&#xff0c;节省功耗&#xff0c;速度更快SDR 单数据传输速率&#xff0c; SCL时钟频率可达到12.5MHz所有符合I3C标准的设备都必须要拥有一个总线特性寄存器1. I3C 协议模式概览 (Section 5)文档首先列出了 I3C 支持的几种主要通信模式&#xff1a;SDR (Sing…...