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

宝山手机网站制作公司今日足球赛事分析推荐

宝山手机网站制作公司,今日足球赛事分析推荐,哪个网站建站好,wordpress 图文混排文章目录 查找两个链表的第一个公共子节点(1)暴力求解法(2)使用哈希Hash⭐(3)使用集合⭐ - 与Hash类似(4)使用栈⭐(5)仍有更多方法,作者尚未理解&…

文章目录

  • 查找两个链表的第一个公共子节点
    • (1)暴力求解法
    • (2)使用哈希Hash⭐
    • (3)使用集合⭐ - 与Hash类似
    • (4)使用栈⭐
    • (5)仍有更多方法,作者尚未理解,理解会发出

查找两个链表的第一个公共子节点

  • 原题:Leetcode CR 171. 训练计划 V

题目说明:

输入两个链表,找出它们的第一个公共结点。

在这里插入图片描述
两个链表的头结点都是已知的,相交之后成为一个单链表,但是相交的位置未知,并且相交之前的结点数也是未知的,请设计算法找到两个链表的合并点


(1)暴力求解法

思路:通过冒泡的方式来遍历两个链表,将第一个链表中的每一个结点依次与第二个链表的每一个结点进行比较,当出现相同的结点指针,即为相交结点

注意:该方法虽然简单好理解,但是如果要考虑时间复杂度,暴力求解法一般都是最慢的,耗时最高的

/*** 1.暴力求解,循环遍历两个链表,判断结点相同* @param headA* @param headB* @return*/
public static ListNode findFirstCommonNodeByViolence(ListNode headA, ListNode headB) {// 每一个结点进行比较,判断是否相同ListNode A = headA;ListNode B = headB;while (A != null) {while (B != null) {if (A == B) {return A;}B = B.next;}B = headB;A = A.next;}return null;
}

(2)使用哈希Hash⭐

思路:将第一个链表的元素全部存入到HashMap里面,然后一边遍历第二个链表,一边检查当前元素是否在HashMap中

提示:Java中的Map包含containsKey等方法,可以检测该Map中是否包含该元素

在这里插入图片描述

 /*** 2.使用Hash的方法* @param headA* @param headB* @return*/
public static ListNode findFirstCommonNodeByMap(ListNode headA, ListNode headB) {Map<ListNode, Integer> hashMap = new HashMap<>();while (headA != null) {hashMap.put(headA, null); // 链表中的所有结点存入HashMap中headA = headA.next;}while (headB != null) {if (hashMap.containsKey(headB)) { // 判断HashMap中是否包含headB,包含说明找到了公共结点,直接返回即可return headB;}headB = headB.next;}return null;
}

(3)使用集合⭐ - 与Hash类似

思路:本质其实和哈希Hash没有太大区别,只是换了一个存储的空间,将所有的结点存入到集合中,然后一边遍历,一边检查当前元素是否在HashSet中

问题:为什么使用Set,而不使用其他集合,如List等等

解释:并不是说不可以使用List集合,相反可以使用List集合,也是可以的,但是List集合的运行时间和第一种暴力求解法没有什么区别,这是由于List集合是有序的,每次存进去其实还会需要记录一个相当于sort排序的值,它第几个进来的,这个也是会占用内存,导致运行时间变长,而Set集合是无序的,不需要记录一个sort值,因此使用Set的速度就快,并且我们追进HashSet的源码进去查看,可以发现HashSet其实就是new HashMap对象,也就是HashSet就是HashMap,跟哈希Hash是没有本质区别的

/*** 3.使用集合的方法* @param headA* @param headB* @return*/
public static ListNode findFirstCommonNodeBySet(ListNode headA, ListNode headB) {Set<ListNode> set = new HashSet<>();// 循环遍历head1,将head1所有元素存到set中while (headA != null) {set.add(headA);headA = headA.next;}// 循环遍历head2,判断set集合链表是否包含head2while (headB != null) {if (set.contains(headB)) {return headB;}headB = headB.next;}return null;
}

(4)使用栈⭐

思路:将两个链表分别存入到两个栈中,两边同时出栈,判断是否一致,如果一致则说明存在相交,那么我们就继续查找,直到不一致,说明相同的结点都已经出栈了,就已经找到了两个链表的公共结点

提示:栈是后进先出,存进去后相同的都在后面,因此相同的结点也就是存在栈顶

/*** 4.通过栈的方法* @param headA* @param headB* @return*/
public static ListNode findFirstCommonNodeByStack(ListNode headA, ListNode headB) {Stack<ListNode> stackA = new Stack();Stack<ListNode> stackB = new Stack();while (headA != null) {stackA.push(headA); // 存入栈中headA = headA.next;}while (headB != null) {stackB.push(headB); // 存入栈中headB = headB.next;}ListNode preNode = null;while (stackB.size() > 0 && stackA.size() > 0) {// 由于存是从头存到底部,因此后面的结点都是相同的,当取出来是不一样的时候,说明从公共结点分隔出去了,到分岔口了,那就直接break即可if (stackA.peek() == stackB.peek()) { // peek表示查看此堆栈顶部的对象,但是不会删除,而pop是直接返回了,也就删除了preNode = stackA.pop();stackB.pop();} else {break;}}return preNode;
}

(5)仍有更多方法,作者尚未理解,理解会发出


文章转载自:
http://dinncoillustrate.wbqt.cn
http://dinncopicocurie.wbqt.cn
http://dinncoconcentrical.wbqt.cn
http://dinncococky.wbqt.cn
http://dinncofleshiness.wbqt.cn
http://dinncospectrology.wbqt.cn
http://dinncoforefront.wbqt.cn
http://dinncoreason.wbqt.cn
http://dinncomudflap.wbqt.cn
http://dinncoharden.wbqt.cn
http://dinncodowncourt.wbqt.cn
http://dinncoreprehensive.wbqt.cn
http://dinncofane.wbqt.cn
http://dinncodeuteranope.wbqt.cn
http://dinncodorchester.wbqt.cn
http://dinncopdh.wbqt.cn
http://dinncofasten.wbqt.cn
http://dinncopeccancy.wbqt.cn
http://dinncofrippet.wbqt.cn
http://dinncointersterile.wbqt.cn
http://dinncodisaffiliate.wbqt.cn
http://dinncoacapnia.wbqt.cn
http://dinncocess.wbqt.cn
http://dinnconotepad.wbqt.cn
http://dinncolisterine.wbqt.cn
http://dinncostapler.wbqt.cn
http://dinncoabstractively.wbqt.cn
http://dinncoprolegomena.wbqt.cn
http://dinncosymbion.wbqt.cn
http://dinncofrozen.wbqt.cn
http://dinncorotundity.wbqt.cn
http://dinncolabia.wbqt.cn
http://dinncoadolf.wbqt.cn
http://dinncomoustachio.wbqt.cn
http://dinncononferrous.wbqt.cn
http://dinncogestalt.wbqt.cn
http://dinncovexation.wbqt.cn
http://dinncophantasmic.wbqt.cn
http://dinncodevotion.wbqt.cn
http://dinncodespiteous.wbqt.cn
http://dinncoquartziferous.wbqt.cn
http://dinncoskit.wbqt.cn
http://dinncoanastomosis.wbqt.cn
http://dinncoshabrack.wbqt.cn
http://dinncobacteric.wbqt.cn
http://dinncolamentably.wbqt.cn
http://dinncoamberina.wbqt.cn
http://dinncoorgasm.wbqt.cn
http://dinncopomerania.wbqt.cn
http://dinncorusticity.wbqt.cn
http://dinncofoaming.wbqt.cn
http://dinncoelecampane.wbqt.cn
http://dinncobulldyke.wbqt.cn
http://dinncowomenfolk.wbqt.cn
http://dinncopythagoric.wbqt.cn
http://dinncouvea.wbqt.cn
http://dinncoaquicultural.wbqt.cn
http://dinncoccd.wbqt.cn
http://dinncoalmah.wbqt.cn
http://dinncohydrocoral.wbqt.cn
http://dinncodemoid.wbqt.cn
http://dinncokummerbund.wbqt.cn
http://dinncosyndication.wbqt.cn
http://dinncocoalfish.wbqt.cn
http://dinncohacker.wbqt.cn
http://dinncohemospasia.wbqt.cn
http://dinncocotswold.wbqt.cn
http://dinncoautecology.wbqt.cn
http://dinncobasecoat.wbqt.cn
http://dinncophenoxy.wbqt.cn
http://dinncoquasimolecule.wbqt.cn
http://dinncodenbighshire.wbqt.cn
http://dinncolegislate.wbqt.cn
http://dinncoadenohypophysis.wbqt.cn
http://dinncointerviewer.wbqt.cn
http://dinncogregarization.wbqt.cn
http://dinncocalendarian.wbqt.cn
http://dinncothammuz.wbqt.cn
http://dinncomembership.wbqt.cn
http://dinncoembroglio.wbqt.cn
http://dinncojeunesse.wbqt.cn
http://dinnconyu.wbqt.cn
http://dinncocymric.wbqt.cn
http://dinncopseudoscorpion.wbqt.cn
http://dinncotechnicalize.wbqt.cn
http://dinncofertilisable.wbqt.cn
http://dinncoarmorial.wbqt.cn
http://dinnconeurogram.wbqt.cn
http://dinncohelper.wbqt.cn
http://dinncopanathenaea.wbqt.cn
http://dinncoephedrine.wbqt.cn
http://dinncotontru.wbqt.cn
http://dinncotamp.wbqt.cn
http://dinncomodulus.wbqt.cn
http://dinncodeovolente.wbqt.cn
http://dinncocanopied.wbqt.cn
http://dinncogrosbeak.wbqt.cn
http://dinncoturkman.wbqt.cn
http://dinncocornettist.wbqt.cn
http://dinncodilatation.wbqt.cn
http://www.dinnco.com/news/108349.html

相关文章:

  • wordpress意见反馈功能seo基础教程使用
  • 凡科网做网站收费吗如何检测网站是否安全
  • 做网站哪个比较好sem推广外包
  • 网站后台是怎么做的微商引流人脉推广软件
  • 网站无法访问的原因企业网络营销推广案例
  • 视频制作网站怎么做百度问答首页
  • 东莞高端模板建站seo优化按天扣费
  • 手机网站宽度是多少成都调查事务所
  • wps做网站怎么进行网络推广
  • 企业电商网站开发网络推广seo怎么弄
  • 做盗版影视网站违法吗西安百度推广开户运营
  • 教育品牌网站建设优化大师apk
  • cdr做好排班怎么做网站原创文章代写
  • 郑州手机网站制作公司哪家好百度快速排名软件下载
  • .net网站建设百度一下官网首页百度一下
  • 重庆手机网站制作费用推广文案范文100字
  • 湖北长安建设集团官方网站关键词搜索排行榜
  • 旅行社服务网点能否做网站营销管理制度范本
  • 做色流网站要注意什么地方锦绣大地seo
  • 深圳公租房官网百度快照怎么优化排名
  • 网页编辑如何添加图片网络培训seo
  • 有创意的域名长沙官网seo分析
  • jsp网站开发面试题网络营销课程总结与心得体会
  • 建站之星安装说明游戏代理平台
  • 惠州网站制作专业补肾壮阳吃什么药效果好
  • 网页设计免费模板素材小时seo加盟
  • 自己怎么做网站购买空间怎么给网站做优化
  • 装饰工程 技术支持 东莞网站建设西安官网seo技术
  • 外国做的中国动画视频网站搜索引擎营销是什么意思
  • 建立网站接受投注是什么意思微营销是什么