herrDeng網內搜尋

自訂搜尋

Ads

2023年6月3日 星期六

DFS C++解Leetcode 1376 Time Needed to Inform All Employees(C++ code)


DFS C++解Leetcode 1376 Time Needed to Inform All Employees 一家公司的每個員工都有一個獨特的ID,從0到n-1。負責人是headID的那位, manager[headID] = -1。manager[i]表示員工i的直接經理,員工i需要花費informTime[i]分鐘來通知他的直接下屬,通知所有員工所需的時間?
[LeetCode程式]https://www.youtube.com/watch?v=--vVXnaKPqI&list=PLYRlUBnWnd5IdDHk2BjqXwesydU17z_xk
====
A company's employee structure, each employee has a unique ID, from 0 to n-1. The head of the company is the one with the headID. manager[i] indicates the direct manager of employee i, manager[headID] = -1. Employee i takes informTime[i] minutes to inform his direct reports, how long does it take to inform all employees about the news?
class Solution {
	public:
		vector<vector<int>> adj; 
// Adjacency list to represent the organizational hierarchy

 // Function to initialize the adjacency list
 		void adj_ini(int n, vector<int>& manager){
 			adj.resize(n); 
// Resize the adjacency list to accommodate 'n' vertices

 			for(int i = 0; i < n; i++){
 				int x = manager[i];//manager 'x' is the parent node
 				if (x != -1) //i!=headID is special
 					adj[x].push_back(i); 
// Add 'i' as a direct report of manager 'x'
 			}
 		}

 		int timeNeed = 0; // Variable to store the maximum time needed to inform all employees

 // Depth-First Search (DFS) to calculate the maximum time needed
 		void dfs(int i, int time, vector<int>& informTime){
 			timeNeed = max(timeNeed, time); // Update the maximum time needed
 			for(auto v: adj[i])
 				dfs(v, time + informTime[i], informTime); 
                // Recursive call for each direct report of employee 'i'
 		}

 // Function to calculate the total time needed to inform all employees
 		int numOfMinutes(int n, int headID, vector<int>& manager, vector<int>& informTime){
 			adj_ini(n, manager); // Initialize the adjacency list
 			dfs(headID, 0, informTime); 
// Perform DFS starting from the headID (tree root)

 			return timeNeed; // Return the maximum time needed
 		}
};

沒有留言:

Related Posts Plugin for WordPress, Blogger...

熱門文章