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

力扣爆刷第88天之hot100五连刷26-30

力扣爆刷第88天之hot100五连刷26-30

文章目录

      • 力扣爆刷第88天之hot100五连刷26-30
      • 一、142. 环形链表 II
      • 二、21. 合并两个有序链表
      • 三、2. 两数相加
      • 四、19. 删除链表的倒数第 N 个结点
      • 五、24. 两两交换链表中的节点

一、142. 环形链表 II

题目链接:https://leetcode.cn/problems/linked-list-cycle-ii/description/?envType=study-plan-v2&envId=top-100-liked
思路:本题让求环形链表的入口,根据一个数学推论,使用快慢指针,慢指针每次走一步,快指针每次走二步,相遇便说明有环,此时从头结点到达环入口节点的距离是等于从相遇节点到入口节点的距离的,然后让其中一个指针指向头结点,另一个指针从相遇节点出发,再次相遇便是入口。


public class Solution {public ListNode detectCycle(ListNode head) {ListNode slow = head, fast = head;while(fast != null && fast.next != null) {slow = slow.next;fast = fast.next.next;if(slow == fast) {slow = head;while(slow != fast) {slow = slow.next;fast = fast.next;}return slow;}}return null;}
}

二、21. 合并两个有序链表

题目链接:https://leetcode.cn/problems/merge-two-sorted-lists/description/?envType=study-plan-v2&envId=top-100-liked
思路:很简单的题,新链表有一个虚拟头结点,然后有两个指针遍历两个链表,逐个采用尾插法插入到新链表尾部。

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode root = new ListNode();ListNode p1 = list1, p2 = list2, p = root;while(p1 != null && p2 != null) {if(p1.val <= p2.val) {p.next = p1;p = p.next;p1 = p1.next;}else{p.next = p2;p = p.next;p2 = p2.next;}p.next = null;}if(p1 != null) {p.next = p1;}if(p2 != null) {p.next = p2;}return root.next;}
}

三、2. 两数相加

题目链接:https://leetcode.cn/problems/add-two-numbers/description/?envType=study-plan-v2&envId=top-100-liked
思路:从头结点两两相加,用一个变量记录进位值,即可。

class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {int res = 0;ListNode root = new ListNode();ListNode p = root, p1 = l1, p2 = l2;while(p1 != null || p2 != null) {int v1 = p1 != null ? p1.val : 0;int v2 = p2 != null ? p2.val : 0;int t = v1 + v2 + res;res = t > 9 ? 1 : 0;t = t % 10;p.next = new ListNode(t);p = p.next;p1 = p1 != null ? p1.next : null;p2 = p2 != null ? p2.next : null;}if(res == 1) {p.next = new ListNode(1);        }return root.next;}}

四、19. 删除链表的倒数第 N 个结点

题目链接:https://leetcode.cn/problems/remove-nth-node-from-end-of-list/description/?envType=study-plan-v2&envId=top-100-liked
思路:快慢指针,快指针先走N个节点,然后快慢一起走。

class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {ListNode root = new ListNode();root.next = head;ListNode p = root, slow = root;for(int i = 0; i < n; i++) {p = p.next;}while(p != null && p.next != null) {slow = slow.next;p = p.next;}slow.next = slow.next.next;return root.next;}
}

五、24. 两两交换链表中的节点

题目链接:https://leetcode.cn/problems/swap-nodes-in-pairs/description/?envType=study-plan-v2&envId=top-100-liked
思路:使用三个指针,前两个指针负责交换,后一个指针负责记录下一次要交换的节点对。

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode swapPairs(ListNode head) {if(head == null) return head;ListNode root = new ListNode(-1, head);ListNode a = root, b = a.next, c = b.next;while(c != null) {c = c.next;a.next = b.next;a.next.next = b;b.next = c;a = a.next;if(c != null) {a = a.next;b = b.next;c = c.next;}}return root.next;}
}

相关文章:

力扣爆刷第88天之hot100五连刷26-30

力扣爆刷第88天之hot100五连刷26-30 文章目录 力扣爆刷第88天之hot100五连刷26-30一、142. 环形链表 II二、21. 合并两个有序链表三、2. 两数相加四、19. 删除链表的倒数第 N 个结点五、24. 两两交换链表中的节点 一、142. 环形链表 II 题目链接&#xff1a;https://leetcode.…...

Ethersacn的交易数据是什么样的(2)

分析 Raw Transanction RLP&#xff08;Recursive Length Prefix&#xff09;是一种以太坊中用于序列化数据的编码方式。它被用于将各种数据结构转换为二进制格式&#xff0c;以便在以太坊中传输和存储。RLP 是一种递归的编码方式&#xff0c;允许对复杂的数据结构进行编码。所…...

学习Android的第二十二天

目录 Android ContextMenu 上下文菜单 ContextMenu 范例 参考文档 Android SubMenu 子菜单 范例 参考文档 Android PopupMenu 弹出菜单 范例 参考文档 Android ContextMenu 上下文菜单 在Android开发中&#xff0c;ContextMenu&#xff08;上下文菜单&#xff09;为…...

JavaScript——流程控制(程序结构)

JavaScript——流程控制&#xff08;程序结构&#xff09; 流程控制就是来控制我们的代码按照什么结构顺序来执行。更倾向于一种思想结构。 流程控制分为三大结构&#xff1a;顺序结构、分支结构、循环结构 1、顺序结构 ​ 代码从上往下依次执行&#xff0c;从A到B执行&#x…...

如何用ChatGPT+GEE+ENVI+Python进行高光谱,多光谱成像遥感数据处理?

原文链接&#xff1a;如何用ChatGPTGEEENVIPython进行高光谱&#xff0c;多光谱成像遥感数据处理&#xff1f; 第一&#xff1a;遥感科学 从摄影侦察到卫星图像 遥感的基本原理 遥感的典型应用 第二&#xff1a;ChatGPT ChatGPT可以做什么&#xff1f; ChatGPT演示使用 …...

AIGC工具( 7个 )

人工智能技术有好的一方面&#xff0c;又不好的地方&#xff0c;要区别对待&#xff0c;吸取精华&#xff0c;去其糟粕。目前市场上有很多AI大模型&#xff0c;可以支持聊天&#xff0c;写文稿&#xff0c;创作等&#xff0c;部分可以生成图片&#xff0c;以下是7个很不错的免费…...

学习Java的第一天

一、Java简介 Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling和同事们共同研发&#xff0c;并在 1995 年正式推出。 后来 Sun 公司被 Oracle &#xff08;甲骨文&#xff09;公司收购&#xff0c;Jav…...

【设计模式】工厂模式与抽象工厂模式

工厂方法 以图书馆管理系统为例&#xff0c;需要API提供查询不同专业分类的书目列表&#xff0c;一般实现&#xff0c; class LibraryManager { public:LibraryManager() {}//按专业分类查询BookList Query(Type type) {if(type TA) {return ...;} else if (type TB) {} el…...

使用plasmo框架开发浏览器插件,注入contents脚本和给页面添加UI组件

plasmo&#xff1a;GitHub - PlasmoHQ/plasmo: &#x1f9e9; The Browser Extension Framework plasmo是一个开发浏览器插件的框架&#xff0c;支持使用react和vue等技术&#xff0c;而且不用手动管理manifest.json文件&#xff0c;框架会根据你在框架中的使用&#xff0c;自…...

python并发 惰性处理大型数据集

惰性计算是一种编程策略&#xff0c;它使得程序在何时执行计算的决定推迟到需要结果时才进行。这种策略的好处在于&#xff0c;它允许程序处理大规模数据或者需要大量计算的任务时节省内存和计算资源。 举例来说&#xff0c;当我们调用 Python 中的 range() 函数时&#xff0c…...

Docker将本地的镜像上传到私有仓库

使用register镜像创建私有仓库 [rootopenEuler-node1 ~]# docker run --restartalways -d -p 5000:5000 -v /opt/data/regostry:/var/lib/registry registry:2[rootopenEuler-node1 ~]# docker images REPOSITORY TAG IMAGE…...

[LeetBook]【学习日记】有效数字——状态机

题目 有效数字 有效数字&#xff08;按顺序&#xff09;可以分成以下几个部分&#xff1a; 若干空格一个小数或者整数&#xff08;可选&#xff09;一个’e’或’E’&#xff0c;后面跟着一个整数若干空格 小数&#xff08;按顺序&#xff09;可以分成以下几个部分&#xff1a…...

学习目标2024

技术: 什么是 Nacos apifox 业务: 域统一...

引入js,刷新清除缓存

一、这种会让所有的css/js资源重新加载 <meta http-equiv"pragram" content"no-cache"> <meta http-equiv"cache-control" content"no-cache, no-store, must-revalidate">二、加时间戳 每次引入&#xff0c;后面版本号都…...

【VSCODE修改代码行间距】解决方案

在我们编码的过程中&#xff0c;由于显示字体和显示器的不同&#xff0c;会需要调整行间距&#xff0c;在vscode默认的选项中没有看到设定行间距的选项&#xff0c;不过&#xff0c;可以手动修改配置档达到目的。 1.打开设置 2.打开配置档&#xff0c;手动进行设定 3.在选项中添…...

lvs+keepalive

虚拟路由冗余协议(Virtual Router Redundancy Protocol&#xff0c;简称VRRP) VRRP能够在不改变组网的情况下&#xff0c;将多台路由器虚拟成一个虚拟路由器&#xff0c;通过配置虚拟路由器的IP地址为默认网关&#xff0c;实现网关的备份。 协议版本: VRRPv2&#xff08;常用&…...

用spark读取及存储数据

文章目录 读取数据存储数据 读取数据 data spark.sql("""select * from temp.tables""") data.show(3)# 转成pandas方式 # df data.toPandas() # df.head(3)存储数据 table "temp.new_tables" data.write.format("hive"…...

蓝牙 | 软件: Qualcomm BT Audio 问题分析(4)----检查MIPS使用情况

大家好&#xff01; 我是“声波电波还看今朝”成员的一位FAE Devin.wen&#xff0c;欢迎大家关注我们的账号。 今天给大家大概讲解“如何排查Qualcomm BT Audio”的疑难杂症&#xff08;四&#xff09;&#xff1a;MIPS检查。 如果大家还没有注册我们大大通的账号&#xff0c…...

【实战】K8S集群部署nacos并接入Springcloud项目容器化运维

文章目录 前言Nacos集群搭建Spring cloud配置nacos将Springcloud项目部署在k8s写在最后 前言 相信很多同学都开发过以微服务为架构的系统&#xff0c;开发微服务必不可少要使用注册中心&#xff0c;比如nacos\consul等等。当然在自动化运维流行的今天&#xff0c;我们也会将注…...

prometheus监控zookeeper方案

这里要求zookeeper版本必须达到3.6或以上&#xff0c;用的是官方自带的监控信息。 官方下载地址 https://zookeeper.apache.org/releases.html#download 然后在zookeeper的配置文件&#xff0c;比如zoo.cfg最后面加上这一段 metricsProvider.classNameorg.apache.zookeeper.…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...