zoukankan      html  css  js  c++  java
  • 1082. 员工的重要度

    1082. 员工的重要度

    中文English

    给定一个保存员工信息的数据结构,它包含了员工唯一的id,重要度 和 直系下属的id。

    比如,员工1是员工2的领导,员工2是员工3的领导。他们相应的重要度为15, 10, 5。那么员工1的数据结构是[1, 15, [2]],员工2的数据结构是[2, 10, [3]],员工3的数据结构是[3, 5, []]。注意虽然员工3也是员工1的一个下属,但是由于并不是直系下属,因此没有体现在员工1的数据结构中。

    现在输入一个公司的所有员工信息,以及单个员工id,返回这个员工和他所有下属的重要度之和。

    样例

    样例 1:

    输入: employees = [[1,2,[2]], [2,3,[]]], id = 2
    输出: 3
    解释:
    员工2的重要度为3。
    

    样例 2:

    输入: employees = [[1, 5, [2, 3]], [2, 3, []], [3, 3, []]], id = 1
    输出: 11
    解释:
    员工1自身的重要度是5,他有两个直系下属2和3,而且2和3的重要度均为3。因此员工1的总重要度是 5 + 3 + 3 = 11
    

    注意事项

    • 一个员工最多有一个直系领导,但是可以有多个直系下属
    • 员工数量不超过2000。
    输入测试数据 (每行一个参数)如何理解测试数据?
    """
    # Employee info
    class Employee:
        def __init__(self, id, importance, subordinates):
            # It's the unique id of each node.
            # unique id of this employee
            self.id = id
            # the importance value of this employee
            self.importance = importance
            # the id of direct subordinates
            self.subordinates = subordinates
    """
    class Solution:
        """
        @param imput: 
        @param id: 
        @return: the total importance value 
        """
        def getImportance(self, employees, id):
            # Write your code here.
            
            res = 0
            l = [employees[id-1]]
            while l != []:
                pop_num = l.pop(0)
                l.extend(self.getemplyees(employees,pop_num))
                res += pop_num.importance
            return res
        
        def getemplyees(self,employees,num):
            r = []
            for index in num.subordinates:
                r.append(employees[index-1])
            return r

    递归写法:

    """
    # Employee info
    class Employee:
        def __init__(self, id, importance, subordinates):
            # It's the unique id of each node.
            # unique id of this employee
            self.id = id
            # the importance value of this employee
            self.importance = importance
            # the id of direct subordinates
            self.subordinates = subordinates
    """
    class Solution:
        """
        @param imput: 
        @param id: 
        @return: the total importance value 
        """
        def getImportance(self, employees, id):
            # Write your code here.
            
            res = {}
            for employee in employees:
                res[employee.id] = [employee.importance,employee.subordinates]
            
            def dfs(i):
                count = res[i][0]
                for index in res[i][1]:
                    count += dfs(index)
                return count
                
            return dfs(id) if id in res else 0
  • 相关阅读:
    java接口对入参的判断校验
    sqlyog使用技巧
    mysql 数据库的表中复制一条数据并添加到该表中
    union all ,union 注意事项,查询结果集中的字段名称顺序必须一致
    IDEA连接mysq数据库,其实很简单
    git版本回退、git远程分支管理、git本地分支管理、git生产代码bug修复
    Vue上拉加载下拉刷新---vue-easyrefresh
    Flutter上拉加载下拉刷新---flutter_easyrefresh
    vue-cli webpack多Html页面的配置(附框架vue-webpack-multipage实例)
    Qt使用镜像源快速安装与更新
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12650202.html
Copyright © 2011-2022 走看看