LeetCode 5354. 通知所有員工所需的時間(迭代)
- 2020 年 3 月 11 日
- 筆記
題目鏈接:https://leetcode-cn.com/problems/time-needed-to-inform-all-employees/
解法不一,可以從上向下的遍歷,也可以從下往上遍歷,可以深搜,也可以迭代,比賽的時候去實現的從下網上去查找,但是寫複雜了,寫了很多不必要的東西,其實這道題很簡單。我們找到每一個葉子節點,然後從下網上搜到根節點就好了,程式碼也很好理解,直接看程式碼吧。
AC程式碼:
class Solution { public: int numOfMinutes(int n, int root, vector<int>& m, vector<int>& info) { int ans = 0; for(int i=0;i<n;i++){ if(info[i] == 0){ // 判斷是否是葉子節點 int xx = i; int sum = 0; while(xx != -1){ sum += info[xx]; xx = m[xx]; } ans = max(ans, sum); } } return ans; } };