Re: [閒聊] 每日leetcode
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
→
10/22 21:05,
1年前
, 1F
10/22 21:05, 1F
討論串 (同標題文章)
完整討論串 (本文為第 1023 之 1548 篇):