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;      }  };