作者ZooseWu (動物園 公告)
看板Marginalman
標題[閒聊] leetcode
時間Fri Dec 1 10:47:04 2023
今天的LeetCode太簡單了
如果遇到這種題目我應該會在挑一提graph的來練習
133. Clone Graph
給你一個圖
你深拷貝一份並回傳
https://assets.leetcode.com/uploads/2019/11/04/133_clone_graph_question.png
要符合:
1.每一個節點都是新的物件
2.圖的結構要相同
Intuition
用遞迴深拷貝
Approach
要先生出新的Node並且加入Map才能跑遞迴
否則會抓不到你生的Node
結果這一題跟圖沒有太大的關係
TS Code:
function cloneGraphWithMap (node: Node | null, map: Map<number, Node>): Node
| null {
if (node === null) return null
if (map.has(node.val)) return map.get(node.val)
const newNode = new Node(node.val, [])
map.set(node.val, newNode)
newNode.neighbors = node.neighbors.map((n) => cloneGraphWithMap(n, map))
return newNode
}
function cloneGraph (node: Node | null): Node | null {
return cloneGraphWithMap(node, new Map<number, Node>())
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.32.229.33 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1701398827.A.2AC.html
→ yam276: 我最近都在玩樹樹 12/01 10:48
→ ZooseWu: 樹對我來說相對好理解 不過樹的題目我也沒寫多少就是了 12/01 10:49
推 NTHUlagka: 大師又在比賽嗎? 12/01 13:29
→ NTHUlagka: 有 12/01 13:29
→ ZooseWu: 沒有 單純做好玩的 12/01 18:28