LeetCode 1443. 收集树上所有苹果的最少时间(自底向上DFS)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1443. 收集树上所有苹果的最少时间(自底向上DFS)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
給你一棵有 n 個節點的無向樹,節點編號為 0 到 n-1 ,它們中有一些節點有蘋果。
通過樹上的一條邊,需要花費 1 秒鐘。
你從 節點 0 出發,請你返回最少需要多少秒,可以收集到所有蘋果,并回到節點 0 。
無向樹的邊由 edges 給出,其中 edges[i] = [fromi, toi] ,表示有一條邊連接 from 和 toi 。
除此以外,還有一個布爾數組 hasApple ,其中 hasApple[i] = true 代表節點 i 有一個蘋果,否則,節點 i 沒有蘋果。
示例 1:
示例 2:
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/minimum-time-to-collect-all-apples-in-a-tree
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 由題目條件可知向上走的路徑只有1個分支,把反向的路徑存在哈希map里
- 遍歷hasApple數組,對有蘋果的序號,進行dfs往上找,找到一條邊,就在哈希表里刪除一條
- 最后返回邊的個數乘以2
360 ms 56.3 MB
總結
以上是生活随笔為你收集整理的LeetCode 1443. 收集树上所有苹果的最少时间(自底向上DFS)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1306. 跳跃游戏
- 下一篇: LeetCode 640. 求解方程(字