Java教程

员工的重要性(求树的节点值之和)

本文主要是介绍员工的重要性(求树的节点值之和),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

原题链接
思路分析:
我们可以将员工之间的关系抽象为一棵树,那么原题问的就是以 i d id id 为根节点的子树的所有节点的和。
定义函数的功能为:返回以 i d id id 为根节点的子树的所有节点的和。采用 D F S DFS DFS 便利便可求解。
C o d e : Code: Code:

/*
// Definition for Employee.
class Employee {
public:
    int id;
    int importance;
    vector<int> subordinates;
};
*/

class Solution {
public:
    int getImportance(vector<Employee*> employees, int id) {
        int ans = 0;
        for( auto C1 : employees ){
            if( C1->id == id ){
                ans += C1->importance;
                for( auto C2 : C1->subordinates ){
                    ans +=  getImportance(employees, C2); 
                }
            }
        }
        return ans;
    }
};
这篇关于员工的重要性(求树的节点值之和)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!