2021-06-16 相交链表

从零开始:用Xilinx FPGA实现RISC-V单周期CPU(附完整Verilog代码) 本文详细介绍了如何使用Xilinx FPGA从零开始实现RISC-V单周期CPU,包括开发环境搭建、核心架构设计、Verilog代码实现及功能验证。通过实战指南和完整代码示例,帮助开发者掌握RISC-V CPU设计的关键技术,适用于嵌入式系统和定制化计算场景。 阅读详情

leetcode每日一题之相交链表

题目描述:

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。

例子:
在这里插入图片描述

输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3
输出:Intersected at '8'
解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。
从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。
在 A 中,相交节点前有 2 个节点;在 B 中,相交节点前有 3 个节点。

解法1:

使用Set集合(特点:元素不允许重复)存储节点,而不是存储节点的数值(起始自己的想法,发现遍历到1的时候就结束了),而存储节点的话,节点中是包含数值和下一个节点的指针指向的,因此才是正确的,具体代码如下:

 public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        Set<ListNode> nodeSet = new HashSet<>();//注意Set集合的泛型
        while (headA != null) {//遍历A链表并添加到Set集合中
            nodeSet.add(headA);
            headA = headA.next;
        }
        while (headB != null) {//遍历B链表并做判断是否Set集合中的元素已经包含了B链表
            if (nodeSet.contains(headB)) {
                return headB;
            } else {
                headB = headB.next;
            }
        }
        return null;
    }

解法2:使用双指针

这种方法不容易想到,可以参考官方题解以及证明https://leetcode-cn.com/problems/intersection-of-two-linked-lists/solution/xiang-jiao-lian-biao-by-leetcode-solutio-a8jn/

大概意思就是当A链表遍历结束后将指针指向B链表的头节点,B链表也一样,假如相交部分的长度是c,A链表的长度是a,B链表的长度是b,那么两个链表走的路程都是a+b+c,之后会相遇在相交节点。

public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        ListNode a = headA;
        ListNode b = headB;
        while (a != b) {
            a = (a != null) ? a.next : headB;
            b = (b != null) ? b.next : headA;
        }
        return a;
    }
RK3568平台YOLOv11模型部署全流程实战:环境搭建、模型转换与性能优化解析 在AI边缘计算领域,瑞芯微RK3568芯片凭借其强大的NPU算力和丰富的接口资源,成为了众多开发者的首选平台。然而,瑞芯微官方文档虽然提供了YOLO11预训练模型的部署方案,但对于需要自定义数据集训练的开发者来说,从模型训练到板端部署的完整流程却缺乏详细指导。本文将带你走完从环境搭建、数据准备、模型训练到最终板端部署的完整技术路线,并分享实际开发中遇到的各种坑点和解决方案。让我们一起探索如何在RK3568平台上实现30FPS稳定推理的YOLO11目标检测应用! 阅读详情

相关推荐

MacBook用户必看:用Homebrew一键搞定frp内网穿透(含阿里云配置模板)

本文为MacBook用户提供基于Homebrew的frp内网穿透实战指南,详细介绍了从环境准备到阿里云服务器配置的全过程。通过Homebrew一键安装frp客户端,结合阿里云配置模板,实现高效稳定的内网穿透,适用于远程开发、IoT设备调试等多种场景。

weixin_28692817的博客 321

手把手教你学会简单的链表相交问题(LeetCode 160 .相交链表)

一首歌的时间学会链表相交问题,交给我啦!

qq_52777887的博客 3832

什么是PON(无源光纤网络)、PON的发展及演进

全球知名媒体Omdia在光纤和铜缆接入设备预测报告中对2022年2月的预测显示,PON设备端口收入预计在2020年至2027年期间以12.3%的年复合增长率增长,到2027年将达到163亿美元,远高于2020年的82亿美元。 此前,Omdia有份报告称,在3月份举行的美国OFC展会中,众多 CSP 正在顺利部署 XGS PON(10G 对称),其他 CSP 专注于基于 GPON 的低速 FTTH 服务。另外关于25G PON 和 50G PON 之间的争论仍在继续,而Omdia 认为 25G PON 和 5

4931

链表相交问题详解

但是A链表和B链表的长度不相等,我们怎么才能让curA指向a1的同时cueB指向b2呢?

yyykule的博客 1306

树莓派教程(基于python编程)--入门篇

一:格式化SD卡 SD卡插入读卡器连接电脑,使用SDFormatter对SD卡进行格式化 (重装烧录也要进行着SD卡格式化操作) 二:下载官方镜像 http://downloads.raspberrypi.org/raspbian_latest 三:烧录SD卡 使用Win32DiskImager将镜像烧录到格式化后的SD卡 SD卡盘根目录(/boot)下新建一个命名为ssh的...

qq_42109746的博客 6万+

快速修改Petalinux编译生成的rootfs.cpio.gz文件:无需重新编译的实用技巧

本文详细介绍了如何在不重新编译的情况下快速修改Petalinux生成的rootfs.cpio.gz文件,适用于Zynq平台开发。通过解包image.ub、修改rootfs内容并重新打包的完整流程,可显著提升调试效率,特别适合频繁修改配置文件的场景。文章还提供了自动化脚本和进阶应用技巧,帮助开发者优化工作流程。

weixin_28285943的博客 241

代码随想录链表篇——链表相交(三种方法)

刷题总结

qq_39473176的博客 1384

Oracle EBS Interface/API(29) - AP发票API

续上编文章《Oracle EBS Interface/API(28) - 客制化开发AP付款API》背景,介绍如调用官方提供标准AP发票API调用 用户界面 Invoices(Payables Manager->Invoices->Entry->Invoices) Open Interface Invoices(Payables Manager->Invoices->Entry->Open Interface Invoices) 快速参考 参考点 内容.

陈显平的专栏-Oracle EBS 1151

力扣---LeetCode160. 相交链表(代码详解+流程图)

第十弹 --- 力扣LeetCode每日一题

小沈.的博客 1837

倍福EL6002实现RS232自由口通信,以称重模块RS232数据接收为例

RS-232是美国电子工业联盟制定的串行数据通信接口标准,原始编号全称是EIA-RS-232(简称RS232),它被广泛用于DCE(Data Communication Equipment ) 和 DTE(Data Terminal Equipment) 之间的连接。最早的台式电脑都会保留9针的232接口,用于串口通信,目前基本被USB接口取代。CTS是对请求发送RTS信号的响应,当DCE已经准备好接收数据时,该信号有效(ON),通知DTE可用使用TXD发送数据了。弄完了,再将CTS设置为1,让A发数据。

weixin_41883890的博客 1726

Python 中 dpkt 库的详细使用指南(强大的 Python 数据包解析库)

dpkt 是一个功能强大的 Python 网络数据包解析库,支持解析和构造以太网、IP、TCP/UDP 等多种协议的数据包。其核心功能包括解析各层协议头部、读写 pcap 文件、构造自定义数据包及分析 HTTP 流量等。dpkt 提供简单易用的 API,适用于网络分析、安全研究和流量监控场景。优化技巧包括数据包过滤、批量处理和选择性解析以提高性能,常见问题如数据不完整或协议识别错误可通过异常处理和字段验证解决。典型应用场景涵盖协议分析、网络调试和自定义数据包生成。

数据知道的博客 1万+

两链表相交问题

两单向链表相交问题 一、问题分析 (1)两个链表相交,那么两个链表中的节点一定有相同地址。 (2)两个链表相交,那么两个链表从相交节点开始到尾节点一定都是相同的节点。 (问:为什么? 答:因为每一个节点最多只能有一个下一节点,因此在相交节点之后,链表不可能再分为两个链表) 二、问题解法 根据两个链表是否存在环来分类讨论 1、无环 无环的情况有两种比较快速的解决方式,这两种方...

linchonghui888的博客 2204

YOLOv8改进 | 主干篇 | 利用MobileNetV1替换Backbone(轻量化网络结构)

本文给大家带来的改进机制是MobileNetV1,其是专为移动和嵌入式视觉应用设计的轻量化网络结构。这些模型基于简化的架构,并利用深度可分离卷积构建轻量级深度神经网络,其引入了两个简单的全局超参数,用于在延迟和准确性之间进行有效的权衡。实验表明,MobileNets在资源和准确性的权衡方面表现出色,并在多种应用(如对象检测、细粒度分类、面部属性识别和大规模地理定位)中展现了其有效性,这个模型非常适合轻量化的读者来使用。适用检测目标:轻量化网络结构适合轻量化的读者。

Snu77的博客 3966

【链表题解】

题目描述:给你单链表的头节点 head,请你反转链表,并返回反转后的链表。示例:对于本题,采用头插法。首先将head.next置为null。定义一个cur和curN将cur取出来头插到head位置前面,让他们建立联系(cur.next = head)把cur给到head(head = cur),在让cur往后移(cur = curN)的同时curN向后移。依次循环判断,当cur为null的时候,循环结束。在循环之前要判断head是否为空,以防空指针异常。

2301_81510374的博客 959

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

面试中常见的链表题目

最近参加面试遇到的一些常见的单链表题目,总结思路和实现代码。 1.单链表的反序 2.给单链表建环 3.检测单链表是否有环 4.给单链表解环 5.检测两条链表是否相交 6.不输入头节点,删除单链表的指定节点(只给定待删除节点指针) 7.合并两个有序链表 1.单链表的反序 01 //逆转链表,并返回逆转后的头节点

xywlzd的专栏 635

WINCC7.3破解文件

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

数据结构—24王道链表综合应用题

持续更新考研数据结构结构与算法讲解,适合刚入门及考研的朋友阅读。 如果文章对你有帮助,可以给我一个点赞和关注,你们的支持将是我更新的最大动力!

瑞文CS小课堂 748

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

常用链表操作算法

链表操作在面试中会经常出现,下面列举的链表操作方法是比较典型的。 问题1:输入一个单向链表,输出该链表中倒数第k个结点 一个单向链表无法像数组一样可以直接索引,那么要找到链表的倒数第K个节点该怎么操作呢,其实思路非常简单,我们只需要设置两个指针p1,p2,首先p1和p2都指向链表的头部head,然后p2向前走k步,这样p1和p2之间就间隔k个节点,最后p1和p2同时向前移动,直至p2走

kavenyang的专栏 423

学习记录 java 链表知识

01.import java.util.HashMap; 02.import java.util.Scanner; 03.import java.util.Stack; 04. 05./** 06. * 07. * @author kerryfish 08. * 关于java中链表的操作 09. * 1. 求单链表中结点的个数: getListLeng...

weixin_30270889的博客 111

链表经典面试题

解法2:这里我们可以用快慢指针来解决:快慢指针,

weixin_64906519的博客 614

常见的链表题目 .

一些常见的单链表题目,总结思路和实现代码。 1.单链表的反序 2.给单链表建环 3.检测单链表是否有环 4.给单链表解环 5.检测两条链表是否相交 6.不输入头节点,删除单链表的指定节点(只给定待删除节点指针) 1.单链表的反序 view plaincopy to clipboardprint? 01.//逆转链表,并返回逆转后的头节点   02.node* reverse

hzsjun的专栏 298

LeetCode题解之数组、链表

数组数组理论二分法704. 二分查找35. 搜索插入位置34. 在排序数组中查找元素的第一个和最后一个位置(☆☆)69. x 的平方根367. 有效的完全平方数(☆)26. 删除有序数组中的重复项(☆)27. 移除元素(☆) 数组理论 二分法 双指针法 滑动窗口 二分法 704. 二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 class Solution { public

wenxingxingxing的博客 1543

【leetcode刷题之路】剑指Offer(1)——字符串+链表+双指针

利用双指针,定义pa和pb分别指向A和B的头节点,这里判断是否相交采用了一个非常有意思的方法,假设A和B相交节点前各有skipA和skipB个节点,而相交节点数为C,pa和pb同时开始遍历,如果pa遍历完了就指向headB,同理pb,那么到最后总会遍历相同次数,对于A:skipA+C+skipB,对于B:skipB+C+skipA,如果此时的节点一样的话,说明相交,否则说明都遍历到了各自的最后节点仍不相交,返回空指针。判断当前l1和l2的大小,如果l1较小,就从l1往后连接,并返回l1,同理l2。

要像蜗牛一样一步一步往上爬! 5943

关于单链表的几个问题

Q:如何判断一个单链表是否有环,如果有环,找出环的入口点? A:首先我们判断链表是否有环,设置两个指针slow和fast,指向单链表的头部,每个循环slow走一步,fast走两步。如果没有环,fast或者fast的next会走到NULL,否则fast在环里循环最终会和slow相遇,此时即存在环。 再看第二个问题,当slow和fast相遇时,假设fast已经在环内循环n圈,环长为r,同时fa...

weixin_30429201的博客 153

代码随想录算法训练营第四天| LeetCode24 两两交换链表中的节点、LeetCode19 删除链表的倒数第N个节点、LeetCode160 链表相交、LeetCode142 环形链表II

看完随想录后:随想录里的python的答案重复使用curr变量,应该是出于剩内存的考量,让我看的有点晕,我自己在写的时候会这是变量名比如curr_node, first, second帮我区分这几个变量名所指的node是哪个。看完随想录后:完全没想到这道题这么复杂,在理解上多看了几遍,在公式上还是有点模糊。今日收获:142是没做过的新题,了解了新解题思路。看完随想录后:用的不一样的方法,提供了新的思路。LeetCode24 两两交换链表中的节点。看完随想录后:跟我写的方法一样。

weixin_67709152的博客 301

leetcode总结无止境系列之链表

leetcode总结无止境系列之链表 链表是面试中十分容易考到的题目,一般代码比较短,而且考查面试者的思维全面性和写无bug代码的能力。在写链表的题目时,建议画出示意图,并把头结点、尾节点这些特殊的结点考虑在内。 主要的技巧就是要用dummy head,就是在链表头加一个节点指向head,这样可以避免判断头指针,统一处理所有情况,最后返回dummy->next;另外有一

oooooops 797

LeetCode 160. Intersection of Two Linked Lists (两个链表的交点)

Write a program to find the node at which the intersection of two singly linked lists begins. For example, the following two linked lists: A: a1 → a2 ↘ ...

weixin_30293135的博客 137
上一篇: 2021-06-11合并有序链表
下一篇: 2021-06-17环形链表!!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值