Re: [閒聊] 每日leetcode
看板Marginalman作者JerryChungYC (JerryChung)時間1年前 (2024/10/23 15:42)推噓2(2推 0噓 11→)留言13則, 3人參與討論串1029/1548 (看更多)
https://leetcode.com/problems/cousins-in-binary-tree-ii
2641. Cousins in Binary Tree II
昨天的解完後看Similar Questions看到這題 今天就出了
打算用跟昨天一樣的解法 但後面測資錯了 有大師能幫看是哪邊有問題嗎 ((
用層數與父值當key 同父的就相加
之後把同一層key != parent的加起來
測資17的output第15層錯了 特調後測資18的12跟14層錯了 後面大概也都過不了
# 修改後的Code在最底下
Python Code:
class Solution:
def replaceValueInTree(self, root: Optional[TreeNode]) -> Optional[
TreeNode]:
def c(node: TreeNode, res: defaultdict, level: int, parent: int):
res[level][parent] += node.val
if node.left:
c(node.left, res, level+1, node.val)
if node.right:
c(node.right, res, level+1, node.val)
def u(node: TreeNode, res: defaultdict, level: int, parent: int):
if node.left:
u(node.left, res, level+1, node.val)
if node.right:
u(node.right, res, level+1, node.val)
node.val = sum(v for k, v in res[level].items() if k != parent)
res = defaultdict(lambda: defaultdict(int))
c(root, res, 1, 0)
# print(json.dumps({k: dict(v) for k, v in res.items()}))
u(root, res, 1, 0)
return root
哀 窩好爛
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.129.79.252 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1729669365.A.7DC.html
→
10/23 15:52,
1年前
, 1F
10/23 15:52, 1F
推
10/23 15:52,
1年前
, 2F
10/23 15:52, 2F
→
10/23 15:52,
1年前
, 3F
10/23 15:52, 3F
→
10/23 15:52,
1年前
, 4F
10/23 15:52, 4F
→
10/23 15:58,
1年前
, 5F
10/23 15:58, 5F
→
10/23 16:02,
1年前
, 6F
10/23 16:02, 6F
→
10/23 16:03,
1年前
, 7F
10/23 16:03, 7F
→
10/23 16:07,
1年前
, 8F
10/23 16:07, 8F
推
10/23 16:15,
1年前
, 9F
10/23 16:15, 9F
→
10/23 16:15,
1年前
, 10F
10/23 16:15, 10F
→
10/23 16:18,
1年前
, 11F
10/23 16:18, 11F
→
10/23 16:18,
1年前
, 12F
10/23 16:18, 12F
Python Code:
# 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 replaceValueInTree(self, root: Optional[TreeNode]) -> Optional[
TreeNode]:
def c(node: TreeNode, res: defaultdict, level: int, parent: int):
res[level]['total'] += node.val
res[level][parent] += node.val
if node.left:
c(node.left, res, level+1, node)
if node.right:
c(node.right, res, level+1, node)
def u(node: TreeNode, res: defaultdict, level: int, parent: int):
if node.left:
u(node.left, res, level+1, node)
if node.right:
u(node.right, res, level+1, node)
node.val = res[level]['total'] - res[level][parent]
res = defaultdict(lambda: defaultdict(int))
c(root, res, 1, 0)
u(root, res, 1, 0)
return root
※ 編輯: JerryChungYC (220.129.79.252 臺灣), 10/23/2024 16:19:51
→
10/23 16:21,
1年前
, 13F
10/23 16:21, 13F
討論串 (同標題文章)
完整討論串 (本文為第 1029 之 1548 篇):