LeetCode算法题-Remove Duplicates from Sorted List

地平线旭日X3 安装xfce桌面+VNC查看USB摄像头 VNC是Virtual Network Computing的缩写,它是一种使用RFB(Remote Frame Buffer)协议的用于控制远程电脑的图形桌面分享系统。xfce桌面相比于GNOME桌面更加轻量,占用的资源更少,在没有GPU的设备上也可以运行(旭日的Desktop版本从外观上好像就是xfce桌面,具体没有尝试)。可以使用专用的VNC客户端连接到开发板,例如vnc viewer。板子默认带有openssh-server,因此,WiFi热点连接成功后,就可以使用ssh登录开发板了。 阅读详情

这是悦乐书的第160次更新,第162篇原创

01 前情回顾

昨晚的爬楼梯算法题,有位朋友提了个思路,使用动态规划算法。介于篇幅问题,这里不细说动态规划算法,以后会在数据机构和算法的理论知识里细说。

昨晚的三个解法中,根据测试数据和结果,第三种解法是最优的,但是还能不能更进一步呢?经过推导,我们得知当n大于等于3的时候,f(n) = f(n-1)+f(n-2),也就是说我们只需要得到n的前面两位的结果即可,对此我们使用了数组,将每个值都存起来了,最后取出数组中的最后一位元素。那么是否可以将数组也省掉,降低空间复杂度呢?答案是可以的,我们可以使用临时变量存值。

public int climbStairs4(int n) {
    if (n == 0 || n == 1) {
        return 1;
    } 
    int a = 1;
    int b = 1;
    int temp = 0;
    for (int i=2; i<= n; i++) {
        temp = a + b;
        a = b;
        b = temp;
    }
    return temp;
}

02 看题和准备

今天介绍的是LeetCode算法题中Easy级别的第19题(顺位题号是83)。给定已排序的链接列表,删除所有重复项,使每个元素只出现一次。例如:

输入:1-> 1-> 2
输出:1-> 2

输入:1-> 1-> 2-> 3-> 3
输出:1-> 2-> 3

本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。

03 第一种解法

特殊情况一:当head为空时,直接返回空。

特殊情况二:当head没有下一个节点时,肯定是没有重复节点值的,直接返回head本身。

正常情况:既然要判断节点值是否重复,免不了循环。另外,还要考虑是否要建一个新的链表来连接最后去重的节点值。

首先,获取head的下一个节点值,判断head.val和head.next.val是否相等,如果相等,此时head节点的下一个节点应该跳到head.next.next这里,如果不相等,那么head节点的下一个节点只用跳到head.next即可,接着进入下一次判断。由此,我们可以直接使用head本身,只是需要重新改变它的节点连接对象,也就是它改变原本每个节点的引用,而不需要额外使用新的空间来存储去重后的链表。

public ListNode deleteDuplicates(ListNode head) {
    if (head == null || head.next == null) {
        return head;
    }
    ListNode first = head;
    ListNode second = first.next;
    while (second != null) {
        if (first.val == second.val) {
            second = second.next;
            first.next = second;
        } else {
            first = first.next;
            second = second.next;
        }
    }
    return head;
}

04 小结

去除链表的重复节点值和之前去除数组重复元素的题有点类似,关于链表的简单介绍在合并链表的题有讲过,可以找找之前的文章看看。

以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!

VS Code 重大更新:Agent Skills完美支持! 代码不会骗人,但你的 LLM 可能会编个故事——除非你给它一本《技能手册》。——某位深夜调试成功的 Go 工程师。 阅读详情

相关推荐

用Coze平台30分钟打造《花光10亿》小游戏:零代码AI开发实战

本文详细介绍了如何利用字节跳动推出的Coze平台,在30分钟内零代码开发一款名为《花光10亿》的AI小游戏。通过配置提示词、集成图像生成插件、构建自动化工作流以及使用数据库功能,即使没有编程基础的用户也能快速将创意转化为可交互的智能应用,体验AI开发的便捷与高效。

weixin_29313547的博客 209

removeDuplicates

在做这道题时,整个过程简直要爆炸,主要原因就是我忽略了题干中的几个点 1,这是一个已经排序的数组 2,只需要输出不重复元素的个数,但是要保证数组前length个元素为这些不重复元素 nums = [1,1,2] if len(nums) 2: print(nums) print(len(nums)) else: length = len(nums) ne

jiangjispe的博客 2306

【S32K】S32K144入门笔记(3) SPI(lpspi组件)

0. 引言 与第二篇can对应,第三篇本来想写lin的,毕竟都是车身上常用的总线。但是lin比较麻烦,所以先拖后一下,先把SPI记录一下。 SPI在我们的系统架构中是S32K和ADAS之间做数据传输用的,毕竟速率够高,数据量能传的比较大。 1. 准备 1.1 SPI基础知识 1.2 开发环境 1.2.1 软件开发环境 1.2.2 硬件环境 SPI 2. Demo ...

YoYo的桃子树 2万+

LeetCode 初级算法 RemoveDuplicates

问题: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 : 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 思...

weixin_42095500的博客 554

ITK-snap医学图像标注方法(超级详细)——保姆级

医学3D图像标注方法,非常详细,保姆级

jialiyk的博客 3万+

手把手教你做基于stm32的红外、语音、按键智能灯光控制(上)

这次项目使用的板子是stm32f103c8t6最小系统板,这个板子在tb上都能够买到,随便一个最小系统板都可以,== 注意在买最小系统板的时候需要买一个stlink下载器来下载程序。显示模块是使用的0.96英寸的OLED屏幕,注意是使用的IIC通信协议的OLED屏幕,不是使用SPI总线协议的。这次写的代码还顺便集成了检测温湿度的功能,所以要使用DHT11温湿度传感器,来采集温度。本文所设计的基于单片机的灯光控制系统主要由模式选择功能、手动模式和自动模式组成。LED灯自然就是要控制的部件了。

nbbskk的博客 6559

VBA RemoveDuplicates方法去重复项

RemoveDuplicates后边必须跟参数否则不起作用 ActiveSheet.Range("G21:R36").RemoveDuplicates Columns:=12, Header:=xlYes 其中Columns参数指定要删除重复项的列,如果是1的话,那么第一列中重复项所在行都会被删除,如果是2则只有1,2两列均重复的行才会被删除,以此类推,你的区域12列,那么只有12列均重复的行...

weixin_34114823的博客 2829

ADS2020实战:村田电感.s2p与.mod文件导入全流程对比(附仿真结果差异分析)

本文详细对比了ADS2020中村田电感的.s2p与.mod文件导入流程及仿真结果差异,重点分析了两种模型在低频段和高频段的精度表现。通过实际案例展示.s2p文件在高频仿真中的优势,以及.mod文件在低频和非线性特性模拟中的准确性,为射频电路设计提供模型选择策略和混合仿真技巧。

weixin_29289821的博客 520

算法题丨Remove Duplicates from Sorted Array II

描述 Follow up for "Remove Duplicates": What if duplicates are allowed at most twice? 示例 Given sorted array nums = [1,1,1,2,2,3], Your function should return length = 5, with th...

weixin_34296641的博客 134

带你学习Android中的ContentObserver

通过使用,开发者可以有效地监听系统设置的变化,例如屏幕亮度等。这种机制使得应用能够动态响应系统设置的更改,提升用户体验。在实现需要与系统设置交互的应用时,合理使用是非常重要的。

执剑人 1312

Pre-suite 开发之MFi功能搭建

Pre-suite 固件中只有带无线硬件的Ezairo 7160sl才具备无线通信能力,其无线功能包括标准BLE 5.2 低功耗蓝牙功能以及非标准的低功耗无线音频流功能。Ezairo 7160sl 支持3种低功耗无线音频流协议:来自APPLE的MFi,来自Google的ASHA以及来自onsemi的remote mic。其中MFi音频流走的G.722编码的Mode1,速率为64kbps;而非MFi音频流走的G.722的Mode3,速率为48kbps.

SnowYang2017的博客 1506

python写算法题:leetcode: 82. Remove Duplicates from Sorted List II

# Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solution(object): def deleteDuplicates(self, h...

253

《QGIS快速入门与应用基础》108:CGCS2000对应的投影坐标系

本文详细解析了CGCS2000地理坐标系对应的各类投影坐标系,包括高斯-克吕格3°带/6°带、UTM、地方独立投影和Web墨卡托投影。文章系统阐述了各投影类型的分带规则、参数设置、精度特性及适用场景,并提供了EPSG编码对照表和QGIS操作指南。通过"基准+投影"的绑定机制,这些投影坐标系实现了平面坐标与经纬度的精准转换,满足从大比例尺工程测量到Web地图服务等不同应用需求。内容涵盖投影原理、坐标格式、变形控制等关键技术要点,为GIS开发者和测绘人员提供了实用的参考信息。

LuckyHanMo的博客 545

python写算法题:leetcode: 83. Remove Duplicates from Sorted List

class Solution(object): def deleteDuplicates(self, head): """ :type head: ListNode :rtype: ListNode """ newnodehead = None newnode = None ...

206

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LeetCode OJ算法题(八十二):Remove Duplicates from Sorted List

题目: Given a sorted linked list, delete all duplicates such that each element appear only once. For example, Given 1->1->2, return 1->2. Given 1->1->2->3->3, return 1->2->3. 解法: Remove Dupl

op_yu的专栏 454

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

leetcode:Remove Duplicates from Sorted List II (留下链表中只出现一次的元素)【面试算法题】

题目: Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list. 题意要把链表中有重复的元素全部去除,只留下没有重复过的元素。

Havenoidea 的专栏 5477

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

leetcode:Remove Duplicates from Sorted List(去除链表中重复元素)【面试算法题】

题目: Given a sorted linked list, delete all duplicates such that each element appear only once. 题意去掉链表中重复的元素。

Havenoidea 的专栏 4306

LeetCode OJ算法题(八十三):Remove Duplicates from Sorted List II

题目: Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list. For example, Given 1->2->3->3->4->4->5, return 1->2->5. Gi

op_yu的专栏 517

LeetCode算法题83:删除排序链表中的重复元素(Remove Duplicates from Sorted List)

删除排序链表中的重复元素 LeetCode中文 LeetCode英文 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入...

Making-It 306

leetcode 83和84 Remove Duplicates from Sorted List 和leetcode 1836

删除链表中的结点合集。

weixin_41554427的博客 716

leetcode:82. Remove Duplicates from Sorted List II(Java)解答

转载请注明出处:z_zhaojun的博客 原文地址:http://blog.youkuaiyun.com/u012975705 题目地址:https://leetcode.com/problems/reverse-linked-list-ii/ Remove Duplicates from Sorted List II Given a sorted linked list, delete all

z_zhaojun的博客 2158

83. Remove Duplicates from Sorted List*

83. Remove Duplicates from Sorted List* https://leetcode.com/problems/remove-duplicates-from-sorted-list/ 题目描述 Given a sorted linked list, delete all duplicates such that each element appear only once...

珍妮的选择的博客 250

LeetCode(83)Remove Duplicates from Sorted List

题目如下: Given a sorted linked list, delete all duplicates such that each element appear only once. For example, Given 1->1->2, return 1->2. Given 1->1->2->3->3, return 1->2->3. 题目分析: 本题是给定一个链表,对链表

BUILD 4142

[LeetCode80]Remove Duplicates from Sorted List II

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list. For example, Given 1->2->3->3->4->4->5, return 1->2->5. Given 1->1-

coder 进阶的专栏 3876

[Leetcode学习-c++&java]Remove Duplicates IN String&Array&List

介绍: 去掉集合中,相邻重复元素的问题,无论集合是 string(string 是 char 数组来的) array list 都有相似思路,就是用三指针来解决,所以都放到一块了,首先是 list 的指针处理,引出了对 array string 这两种集合的处理思路。 List: 问题: 难度:medium 说明: 给一个数字 N,然后返回可以 1 ~ N 以内 从 数组索引 1 开始,可以组成多少个完美数组,其中: 完美数组每一个元素符合: arr[i] 可以被 i 整除,或者 i 可以被.

qq_28033719的博客 410

LeetCode_Remove Duplicates from Sorted List

LeetCode_Remove Duplicates from Sorted List

小胜爱捣鼓 1060
上一篇: LeetCode算法题-Climbing Stairs(Java实现)
下一篇: LeetCode算法题-Merge Sorted Array(Java实现)
程序员小川
博客等级 码龄10年 47粉丝 305原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值