2021-04-16

690. 员工的重要性

    //1.根据传入的id找对应的员工
    public static Employee findEmployeeById(List<Employee> employees,int id){
        for(int i=0;i<employees.size();i++){
            if(id==employees.get(i).id)
                return employees.get(i);
        }
        return null;
    }
    //2.开始编写
    public static void getImportance(List<Employee> employees, int id) {
        Employee employee=findEmployeeById(employees,id);  //找到初始id
        res+=employee.importance;
        for(int i=0;i<employee.subordinates.size();i++){
            int tempid=employee.subordinates.get(i);
            getImportance(employees,tempid);
        }
    }

错误解法:

 public  void getImportance(List<Employee> employees, int id,int res) {
        Employee employee=findEmployeeById(employees,id);  //找到初始id
        res+=employee.importance;
        for(int i=0;i<employee.subordinates.size();i++){
            int tempid=employee.subordinates.get(i);
            getImportance(employees,tempid,res);
        }
    }

将res作为参数传入,错误,res相当于形参,所有的改变不会影响外面的值

这里说明一下这种写法,需要设置一个全局变量res=0才可以。不可以将res作为函数参数传进去,传进去之后所有的对于res的操作都在内部操作,对于外面的res不会有任何修改。

解决:将res作为全局变量,并且不做为函数参数传递进去。

此外,这里涉及到java函数的参数传递,一直都很晕,需要花时间研究一下

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 邂逅FLutter 万物皆是Widget 一般缩进2个空格 文字居中 Widget Center() Materi...
    JackLeeVip阅读 3,315评论 0 4
  • 1,使用element的el-upload上传文件,选择完文件就立即请求接口上传。组件中的action是请求地址 ...
    19191919阅读 332评论 0 0
  • 昨天印象最深刻的是一个bug,由于调试难以介入,一直不知道是什么原因造成的。 我就一遍又一遍地重复测试,先相信自己...
    厚丕蓄阅读 98评论 0 2
  • async 和 defer 的区别 async:异步加载脚本,加载完之后立即执行(回调的方式) defer:异步...
    wfield阅读 86评论 0 0
  • jquery form标签方式请求地址,可以适用于H5端请求接口自动跳转链接1,需要在body的底部写一个form...
    19191919阅读 88评论 0 0