精華區beta Marginalman 關於我們 聯絡資訊
2583. Kth Largest Sum in a Binary Tree ## 思路 BFS計算每層的總和, 丟到 k-size的min-heap ## Code ```python # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def kthLargestLevelSum(self, root: Optional[TreeNode], k: int) -> int: heap = [] queue = deque([root]) while queue: curr = 0 for _ in range(len(queue)): node = queue.popleft() curr += node.val if node.left: queue.append(node.left) if node.right: queue.append(node.right) heapq.heappush(heap, curr) if len(heap) > k: heapq.heappop(heap) return -1 if len(heap) < k else heap[0] ``` -- https://i.imgur.com/kyBhy6o.jpeg -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 94.156.205.31 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1729602147.A.BD7.html
sustainer123: 大師 教我 10/22 21:05