from queue import PriorityQueue
classSolution:defmajorityElement(self, nums: List[int])->int:
pq = PriorityQueue(maxsize=0)for num inset(nums):
pq.put((-nums.count(num), num))return pq.get()[1]
題目2
題解2
# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = NoneclassSolution:defgetIntersectionNode(self, headA: ListNode, headB: ListNode)-> ListNode:if headA isNoneor headB isNone:returnNone
a, b = headA, headB
while a != b:
a = a.nextif a else headB
b = b.nextif b else headA
return a
題目3
題解3
# 列表實現classMinStack:def__init__(self):"""
initialize your data structure here.
"""
self.container =[]defpush(self, x:int)->None:
self.container.append(x)defpop(self)->None:
self.container.pop()deftop(self)->int:return self.container[-1]defgetMin(self)->int:returnmin(self.container)# 鏈表實現classNode:def__init__(self, x):
self.val = x
self.next=NoneclassMinStack:def__init__(self):"""
initialize your data structure here.
"""
self.val =None
self.next=Nonedefpush(self, x:int)->None:
p = Node(x)
p.next= self.next
self.next= p
defpop(self)->None:if self.next:
self.next= self.next.nextdeftop(self)->int:if self.next:return self.next.val
returnNonedefgetMin(self)->int:# 設第一個節點的值爲最小值,一直往後比較
p = self.next
minnum = p.val
while p !=None:
minnum =min(minnum, p.val)
p = p.nextreturn minnum
# Your MinStack object will be instantiated and called as such:# obj = MinStack()# obj.push(x)# obj.pop()# param_3 = obj.top()# param_4 = obj.getMin()