当前位置: 首页 > Web前端 > JavaScript

160.相交链表-算法(leetcode,附思维导图+全解)300题

时间:2023-03-26 23:10:05 JavaScript

零题目:算法(leetcode,附思维导图+全解)300题(160)相交链表1题目描述2解题概览(思维导图)三全方案1方案11)代码://方案1《Self.Hash法(JS中的Map数据结构)》。//思路://1)状态初始化:resMap=newMap(),resNode=null;.//2)核心1:遍历链表A,将每个节点存储在hashresMap中。//3)核心2:遍历链表B。//3.1)如果当前节点存在于hashresMap中,则将resNode设置为当前节点,并退出遍历。//4)返回结果resNode.vargetIntersectionNode=function(headA,headB){//1)状态初始化:resMap=newMap(),resNode=null;.让resMap=newMap(),resNode=null;//2)核心1:遍历链表A,将每个节点存储在hashresMap中。while(headA){resMap.set(headA,1);headA=headA.next;}//3)核心2:遍历链表B。while(headB){//3.1)如果当前节点存在于hashresMap中,则将resNode设置为当前节点,并退出遍历。如果(resMap.has(headB)){resNode=headB;休息;}headB=headB.next;}//4)返回结果resNode.returnresNode;}2Scheme21)Code://Scheme2"双指针法.".//参考://1)https://leetcode.cn/problems/intersection-of-two-linked-lists/solution/xiang-jiao-lian-biao-by-leetcode-solutio-a8jn///思路://1)每次操作都需要同时更新指针pA和pB。//2)如果指针pA不为空,则将指针pA移动到下一个节点;如果指针pB不为空,则将指针pB移动到下一个节点。//3)如果指针pA为空,则将指针pA移动到链表headB的头节点;如果指针pB为空,则将指针pB移动到链表headA的头节点。//4)如果指针pA和pB指向同一个节点或者都为空,则返回它们指向的节点或者null。vargetIntersectionNode=function(headA,headB){让pA=headA,pB=headB;while(pA!==pB){pA=pA===null?headB:pA.next;pB=pB===空?headA:pB.next;}returnpA;}四资源分享&more1Historyarticle-overview文章名称解读卷1.二和(TwoSum)共3种2.7k+2。两数相加(AddTwoNumbers)共4种2.7k+3。LongestSubstringWithoutRepeatingCharacters)共3种2.6k+4。求两个正数组的中位数(MedianofTwoSortedArrays)共3种2.8k+5。最长回文子串(LongestPalindromicSubstring)共4种2.8k+6。ZigZagConversion(之字折线转换)共2种1.9k+7。整数反转(ReverseInteger)共2种2.4k+8。StringtoInteger(atoi)(StringtoInteger(atoi))共3种4.2k+9。回文数(PalindromeNumber)共3种4.3k+11。装水最多的容器(ContainerWithMostWater)共5种4.0k+12。整数转罗马数字(IntegertoRoman)共3种3.2k+13。罗马数字转换整数(罗马转整数)共3种3.8k+14。最长公共前缀(LongestCommonPrefix)有4种3.0k+15。三数之和(3Sum)是3种60.7k+16。三数之和(3SumClosest)是3种4.7k+17。电话号码有3种字母组合(LetterCombinationsofaPhoneNumber)3.1k+18。四数之和(4Sum)11.5k+19共4种。DeleteNthNodeFromEndofList(从列表末尾删除第N个节点)一共4种1.2k+20。有效括号(ValidParentheses)共2种1.8k+21.合并两个排序列表(MergeTwoSortedLists)共3种1.2k+22。生成括号(GenerateParentheses)共4种1.1k+23。合并K个升序链表(MergekSortedLists)共4种0.9k+24。成对交换节点有3种类型。0.5k+25。k-Group中有5种类型的反向节点。1.3k+26。删除有序数组4种重复项(RemoveDuplicatesfromSortedArray)1.3k+27。4种移除元素(RemoveElement)0.4k+28。ImplementstrStr()(ImplementstrStr())5种0.8k+29.DivideTwoIntegers0.6k+30有4种。有3种类型的SubstringwithConcatenationofAllWords0.6k+31。有2种类型的NextPermutation0.8k+32。最长有效括号有2种类型1.4k+33。旋转排序数组1.0k+34中有3种搜索类型。FindthefirstelementinthesortedarrayTherearefirstandLastPositionofElementinSortedArray0.5k+35三种类型。搜索插入位置有3种类型0.3k+36。有效数独(ValidSudoku)共1种0.6k+38。出现顺序(CountandSay)5种1.1k+39。组合总和(ComBinationSum)一共3种1.4k+40。组合和II(CombinationSumII)共2种1.6k+41。缺失第一个正数(FirstMissingPositive)共3种1.2k+53。最大子数组和(MaximumSuarray)共3种0.3k+88。合并两个有序数组(MergeSortedArray)共3种0.4k+102。二叉树层序遍历(BinaryTreeLevelOrderTraversal)共3种0.4k+146。LRU缓存(LRUCache)有2种0.5k+206。反向链表(ReverseLinkedList)1.0k+215有3种类型。KthLargestElementinanArray(KthLargestElementinanArray)有3种0.5k+236。LowestCommonAncestorofaBinaryTree(二叉树的最低公共祖先)一共有3种0.1k+2博主简介码农三少,一个致力于写极简但完整的问题解决方案(算法)的博主专注于一个问题,有多种解决方案和结构化思维,欢迎一起刷LeetCode~