蓝桥12

一力扣题目160

蓝桥12_第1张图片

  • 类比环形链表的思路
    (1)当A走到尾部的Null的时候,转到B链表的头节点继续走
    (2)当B走到尾部的Null的时候,转到B链表的头节点继续走
  • 值得注意的是,如图所示,无论是相交还是不相交,对于无环的链表来说,都一定会相遇,因此不会死循环。

class Solution:
    def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode:
        if headA == None or headB == None:
            return None
        a, b = headA, headB
        while(a != b):
            if a==None:
                a = headB
            else:
                a = a.next
            if b==None:
                b = headA
            else:
                b = b.next
        return a

二力扣题目169

蓝桥12_第2张图片

  • 我们只需要建立一个字典,用数字当作key,value当作次数。就可以建立字典的结构实现遍历,只要最后遍历结果中返回最大次数的建就可以
class Solution:
    def majorityElement(self, nums: List[int]) -> int:
        dic={
     }
        for i in nums:
            if i in dic:
                dic[i]+=1
                
                    
            else:
                dic[i]=1
        return max(dic.keys(), key=lambda x: dic[x])

三力扣题目205

蓝桥12_第3张图片

  • 解压合并可以实现列表的转置,或者矩阵的转置,根据我第8天的旋转矩阵思路,运用解压zip函数,对他们进行转置,如果有非同构的,那么解压并压缩的res结果一定有长度不同的元素
class Solution:
    def isIsomorphic(self, s: str, t: str) -> bool:
        res = zip(*set(zip(s, t)))
        for i in res:
            if len(i) != len(set(i)):
                return False
        return True

你可能感兴趣的:(蓝桥12)