22 相交链表
相交链表
- 题解1 快慢双指针
- 改进 (a+c+b = b+c+a)
- 题解2 哈希表(偷懒)
给你两个单链表的头节点
headA 和
headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回
null 。

题目数据 保证 整个链式结构中不存在环。
注意,函数返回结果后,链表必须 保持其原始结构 。



提示:
- listA 中节点数目为
m - listB 中节点数目为
n - 1 <= m, n <= 3 ∗ 1 0 4 3 * 10^4 3∗104
- 1 <= Node.val <= 1 0 5 10^5 105
- 0 <= skipA <=
m - 0 <= skipB <=
n - 如果 listA 和 listB没有交点,
intersectVal为 0 - 如果 listA 和 listB 有交点,
intersectVal == listA[skipA] == listB[skipB]
进阶:你能否设计一个时间复杂度 O(m + n) 、仅用 O(1) 内存的解决方案?
(两个链表各遍历一次,空间不随元素个数变化)
题解1 快慢双指针
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {ListNode* tmpA = headA;ListNode* tmpB = headB;int Alen = 0;int Blen = 0;while(tmpA){Alen ++;tmpA = tmpA->next;}while(tmpB){Blen ++;tmpB = tmpB->next;}ListNode* fastNode = Alen >= Blen ? headA : headB;ListNode* slowNode = Alen < Blen ? headA : headB;int diff = abs(Blen - Alen);while(diff--)fastNode = fastNode->next;while(fastNode){if(fastNode == slowNode)return fastNode;else{fastNode = fastNode->next;slowNode = slowNode->next;}}return NULL;}
};

改进 (a+c+b = b+c+a)
class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {ListNode* tmpA = headA;ListNode* tmpB = headB;// 假设相交 设相交前A长a B长b// 设C点相交 设从C点到list尾结点长c// a+c+b = b+c+a 如果相交 则遍历这么多元素后 会回到C点// 操作上:tmpA指到尾 改指tmpBwhile(tmpA != tmpB){tmpA = tmpA == nullptr ? headB : tmpA -> next;tmpB = tmpB == nullptr ? headA : tmpB -> next;}return tmpA;}
};

题解2 哈希表(偷懒)
class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {unordered_set <ListNode*> kkmap;ListNode * tmp = headA;while(tmp){kkmap.insert(tmp);tmp = tmp->next;}tmp = headB;while(tmp){if(kkmap.count(tmp)) return tmp;tmp = tmp->next;}return nullptr;}
};

相关文章:
22 相交链表
相交链表 题解1 快慢双指针改进 (acb bca)题解2 哈希表(偷懒) 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 题目数据 保证 整个链式结构中不存在环。 注意ÿ…...
简历(快速上手)
简历 文章目录 简历简历模板:排版上:内容上:沟通上: 简历在面试中起到关键作用 网申,HR只会花10秒多来看一下 内推,如果简历没优势就只能pass 简历模板: ⽊及简历(推荐! ) : https://resume.mdedit.online 排版上: 尽量简洁,…...
wpf复制xaml及其cs窗体到其他项目 添加现有项,选 .xaml.cs,点添加即可。VS2022
添加现有项,选 LoadingWindow.xaml.cs,点添加即可。...
在线旅游平台步入新时代,携程如何走出自己的路?
今年旅游从线下到线上全方位火了。有统计数据,一季度,光是抖音,旅游达人发布视频数量就高达175万条,播放量1350亿次,收获27亿次点赞。在这一趋势下,许多“不出名”的景区和酒店借势抖音达人完成“出圈”。短…...
java中feign远程调用底层是用Hystrix作为熔断器吗?
在较新的版本中,Feign 默认使用 OpenFeign 作为远程调用的底层实现,并且集成了 Netflix Hystrix 作为熔断器。然而,需要注意的是,自 Feign 10.x 版本开始,默认已不再集成 Hystrix。 在 Feign 中,Hystrix 被…...
Web安全——穷举爆破下篇(仅供学习)
Web安全 一、常见的端口服务穷举1、hydra 密码穷举工具的使用2、使用 hydra 穷举 ssh 服务3、使用 hydra 穷举 ftp 服务4、使用 hydra 穷举 mysql 服务5、使用 hydra 穷举 smb 服务6、使用 hydra 穷举 http 服务7、使用 hydra 穷举 pop3 服务8、使用 hydra 穷举 rdp 服务9、使用…...
强大的JTAG边界扫描(5):FPGA边界扫描应用
文章目录 1. 获取芯片的BSDL文件2. 硬件连接3. 边界扫描测试4. 总结 上一篇文章,介绍了基于STM32F103的JTAG边界扫描应用,演示了TopJTAG Probe软件的应用,以及边界扫描的基本功能。本文介绍基于Xilinx FPGA的边界扫描应用,两者几乎…...
苍穹外卖集成 Apache POI Java实现Excel文件的读写下载
苍穹外卖 day12 Echats 营业台数据可视化整合_软工菜鸡的博客-CSDN博客 Apache POI - the Java API for Microsoft Documents Project News 16 September 2022 - POI 5.2.3 available The Apache POI team is pleased to announce the release of 5.2.3. Several dependencies …...
iOS逆向:工具安装
二〇二三年〇八月二十三日(2023版,iOS逆向笔记) 对其他APP的实现感兴趣,对技术报以热枕,不去做违反职业道德和违法乱纪的事情,欢迎来到iOS逆向。 工欲善其事必先利其器 ------我说的。 网络不好可配置DNS 1…...
十种数据库缓存相关的技术和机制
数据库的缓存 -- 通过将数据库中的数据或结果集保存在内存或其他快速访问的介质中,能够加快查询响应,减少对磁盘或远程服务器的访问,降低资源消耗。 根据缓存的位置、内容、粒度、更新方式等不同,数据库缓存技术有多种类型和策略。…...
【C++】封装unordered_map和unordered_set(用哈希桶实现)
前言: 前面我们学习了unordered_map和unordered_set容器,比较了他们和map、set的查找效率,我们发现他们的效率比map、set高,进而我们研究他们的底层是由哈希实现。哈希是一种直接映射的方式,所以查找的效率很快…...
面试问题回忆
(1)查看端口 lsof -i:8080 / netstat lsof -i:8080:查看8080端口占用 lsof abc.txt:显示开启文件abc.txt的进程 lsof -c abc:显示abc进程现在打开的文件 lsof -c -p 1234:列出进程号为1234的进程所打开…...
更多场景、更多选择,Milvus 新消息队列 NATS 了解一下
在 Milvus 的云原生架构中,消息队列(Log Broker)可谓任重道远,它不仅要具备流式数据持久性、支持 TT 同步、事件通知等能力,还要确保工作节点从系统崩溃中恢复时增量数据的完整性。 在 Milvus 的架构中,一切…...
如何通过python实现一个web自动化测试框架?
要实现一个web自动化测试框架,可以使用Python中的Selenium库,它是最流行的Web应用程序测试框架之一。以下是一个基本的PythonSelenium测试框架的示例: 1、安装Selenium 在终端中输入以下命令,使用 pip 安装 Selenium:…...
Linux —— 信号阻塞
目录 一,信号内核表示 sigset_t sigprocmask sigpending 二,捕捉信号 sigaction 三,可重入函数 四,volatile 五,SIGCHLD 信号常见概念 实际执行信号的处理动作,称为信号递达Delivery;信…...
【【萌新编写riscV之计算机体系结构之CPU 总二】】
萌新编写riscV之计算机体系结构之CPU 总二(我水平太差总结不到位) 在学习完软件是如何使用之后 我们接下来要面对的问题是 整个程序是如何运转的这一基本逻辑 中央处理器(central processing unit,CPU)的任务就是负责提取程序指令࿰…...
error:03000086:digital envelope routines::initialization error
项目背景 前端vue项目启动突然报错error:03000086:digital envelope routines::initialization error 我用的开发工具是vscode,node版本是v18.17.0 前端项目版本如下↓ 具体报错如下↓ 报错原因 node版本过高 解决方法 1输入命令 $env:NODE_OPTIONS"--op…...
暴涨130万粉仅用3个月,一招转型成B站热门UP主
- 导语 起号难、找不到内容方向、没流量、没粉丝等等运营困境环绕在创作者之间,近期,有黑马UP主短时间内就在B站涨粉百万,飞升成为热门UP主,以下,飞瓜数据(B站版)剖析黑马UP主运营技巧…...
【Linus】vim的使用:命令模式、底行模式、插入模式、视图模式、替换模式的常用操作介绍
目录 注意:以下操作前提是要确保你输入法是英文模式 一、进入和退出各个模式的方法 1.命令模式 2.底行模式 3.插入模式 4.视图模式 5.替换模式 二、在命令模式中一些常用的操作 1.移动光标 2.删除文字 3.复制 4.替换 5.撤销上一次操作 6.更改 7.跳至指…...
leetcode第362场周赛补题
8029. 与车相交的点 - 力扣(LeetCode) 思路:差分数组 class Solution { public:int numberOfPoints(vector<vector<int>>& nums) {int diff[102] {}; for(auto p : nums)//差分{diff[p[0]] ;diff[p[1] 1] -- ;}int res …...
上古卷轴5天际整合包下载最新全热门MOD整合(画质+人物+功能+场景全美化)下载分享
一、整合包基础概况 新手向懒人专属整合资源,适配电脑Windows系统。整合包集成多款热门优质MOD,无需玩家单独下载模组,整合包整体兼容性强,适配主流家用电脑,官方提前做好模组适配优化,规避多数模组冲突问…...
别只盯着SQL了!GaussDB健康度巡检,这5个‘外围’命令和日志文件更重要
别只盯着SQL了!GaussDB健康度巡检,这5个‘外围’命令和日志文件更重要 当数据库出现性能波动时,大多数DBA的第一反应是检查慢SQL或调整参数。但根据某金融客户的生产环境统计,超过60%的数据库故障其实源于日志溢出、网络闪断或备份…...
PyTorch模型参数管理:从torch.nn.Parameter到高效训练实践
1. 理解torch.nn.Parameter的本质 第一次接触PyTorch的torch.nn.Parameter时,我也曾困惑它和普通Tensor的区别。直到在实际项目中踩了几个坑,才真正明白它的价值。让我们从一个简单的例子开始: import torch import torch.nn as nn# 普通Te…...
保姆级教程:在Ubuntu 22.04上从源码编译DPDK TestPMD并跑通第一个包转发测试
从零构建DPDK TestPMD:Ubuntu 22.04实战指南与性能调优 当你第一次听说DPDK能实现百万级数据包转发时,是否好奇这背后的技术魔法?本文将带你用一台普通Ubuntu服务器,亲手搭建这套高性能网络处理框架。不同于官方文档的抽象描述&am…...
从HIP4082到IR2184:直流电机H桥驱动芯片怎么选?一份给硬件工程师的对比清单(含成本、功耗、设计复杂度)
从HIP4082到IR2184:直流电机H桥驱动芯片的工程选型指南 在小型机器人、电动工具或自动化设备的开发中,电机驱动电路的设计往往是硬件工程师面临的核心挑战之一。面对市场上琳琅满目的驱动芯片,如何在性能、成本和可靠性之间找到最佳平衡点&am…...
CentOS 7.9离线部署OnlyOffice踩坑全记录:从依赖包下载到SELinux配置的保姆级避坑指南
CentOS 7.9离线部署OnlyOffice全流程实战:从依赖包下载到SELinux配置的深度排错手册 在企业级生产环境中,离线部署文档协作平台往往面临比常规安装更复杂的挑战。本文将以CentOS 7.9为例,详细拆解OnlyOffice在完全离线环境下的部署全流程&…...
【信息科学与工程学】【通信工程】第四十三篇 骨干网方案设计-02跨境网络
一、方案 1.1 整体方案设计概要 设计的云网融合方案,综合考虑其全球互联需求、安全合规性、性能优化及跨国运营挑战: 1.1.1、需求分析 网络互联需求: 国内互通: 安全、稳定、低延迟连接中国大陆(严格合规要求)。 国际互通: 高性能连接美国(东西海…...
别再乱试了!html2canvas跨域截图报CORS错,我靠改一行源码搞定
突破html2canvas跨域截图困境:从源码层面解决CORS问题的实战指南 前端开发者在处理网页截图功能时,html2canvas无疑是最常用的工具之一。然而,当涉及到跨域资源时,这个看似简单的任务往往会演变成一场噩梦。即使按照官方文档设置…...
Bebas Neue字体技术深度解析:开源无衬线显示字体的现代排版解决方案
Bebas Neue字体技术深度解析:开源无衬线显示字体的现代排版解决方案 【免费下载链接】Bebas-Neue Bebas Neue font 项目地址: https://gitcode.com/gh_mirrors/be/Bebas-Neue Bebas Neue作为一款采用SIL Open Font License 1.1许可证的开源显示字体ÿ…...
5-11测试文章白001
5-11测试文章白0015-11测试文章白0015-11测试文章白001...
