日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

LeetCode 1443. 收集树上所有苹果的最少时间(自底向上DFS)

發(fā)布時間:2024/7/5 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 1443. 收集树上所有苹果的最少时间(自底向上DFS) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. 題目

給你一棵有 n 個節(jié)點的無向樹,節(jié)點編號為 0 到 n-1 ,它們中有一些節(jié)點有蘋果。
通過樹上的一條邊,需要花費 1 秒鐘。
你從 節(jié)點 0 出發(fā),請你返回最少需要多少秒,可以收集到所有蘋果,并回到節(jié)點 0 。

無向樹的邊由 edges 給出,其中 edges[i] = [fromi, toi] ,表示有一條邊連接 from 和 toi 。
除此以外,還有一個布爾數組 hasApple ,其中 hasApple[i] = true 代表節(jié)點 i 有一個蘋果,否則,節(jié)點 i 沒有蘋果。

示例 1:

輸入:n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], hasApple = [false,false,true,false,true,true,false] 輸出:8 解釋:上圖展示了給定的樹,其中紅色節(jié)點表示有蘋果。 一個能收集到所有蘋果的最優(yōu)方案由綠色箭頭表示。

示例 2:

輸入:n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], hasApple = [false,false,true,false,false,true,false] 輸出:6 解釋:上圖展示了給定的樹,其中紅色節(jié)點表示有蘋果。 一個能收集到所有蘋果的最優(yōu)方案由綠色箭頭表示。示例 3: 輸入:n = 7, edges = [[0,1],[0,2],[1,4],[1,5],[2,3],[2,6]], hasApple = [false,false,false,false,false,false,false] 輸出:0提示: 1 <= n <= 10^5 edges.length == n-1 edges[i].length == 2 0 <= fromi, toi <= n-1 fromi < toi hasApple.length == n

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/minimum-time-to-collect-all-apples-in-a-tree
著作權歸領扣網絡所有。商業(yè)轉載請聯(lián)系官方授權,非商業(yè)轉載請注明出處。

2. 解題

  • 由題目條件可知向上走的路徑只有1個分支,把反向的路徑存在哈希map里
  • 遍歷hasApple數組,對有蘋果的序號,進行dfs往上找,找到一條邊,就在哈希表里刪除一條
  • 最后返回邊的個數乘以2
class Solution { public:int minTime(int n, vector<vector<int>>& edges, vector<bool>& hasApple) {unordered_map<int,int> up;//向上走的路徑for(vector<int> & e : edges)up[e[1]] = e[0];int s = 0;for(int i = 0; i < hasApple.size(); ++i){if(hasApple[i])dfs(i, up, s);}return 2*s;}void dfs(int i, unordered_map<int,int>& up, int& s){if(up.count(i)){s++;int to = up[i];//上層節(jié)點up.erase(i);//刪除邊dfs(to,up,s);}} };

360 ms 56.3 MB

總結

以上是生活随笔為你收集整理的LeetCode 1443. 收集树上所有苹果的最少时间(自底向上DFS)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。