欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LeetCode-690. Employee Importance

程序员文章站 2024-03-22 12:34:46
...

Description:

LeetCode-690. Employee Importance

Example 1:

LeetCode-690. Employee Importance

Note:

LeetCode-690. Employee Importance

Solution 1(C++)

LeetCode-690. Employee Importance

算法分析:

这道题明白题目意思就挺好的做。算法过程就是:
根据id找到id相同的Employee,获得其中的importance,然后获得subordinates,遍历其中的id,重复之前的过程。
所以,关键是程序的迭代的实现。

程序分析:

这个题的程序设计,我觉得还是蛮有技巧的。因为首先题目给出的函数本身就可以当一个迭代的函数。然后注意sum初始化为0并没有问题,因为这个函数返回值sum是当前id的improtance,那么函数执行完后,返回到上一层函数,正好可以和之前的improtance累加。所以没问题。

还有一点要注意就是题目中有不同的vector。有必要掌握新的vector遍历方法。

可以参考论C++11 中vector的N种遍历方法

有必要注意employees中存储的是Employee* ,是指针,所以才使用了->运算符。

对于C++中的类,结构体,共用体等具有成员函数或变量的数据类型(对象)时,如果存在对象a,而对象中有成员b,那么可以使用a.b的方式,使用对应的成员。
如果存在变量p,指向a, 即p = &a, 这时可以用p->b来使用成员b。即,->操作符是用于带成员的类型对应指针上,用来提取成员变量或函数用的。p->b等同于(*p).b。对于任意的对象a,写作(&a)->b也是可以的,不过很少有这样写。

主要用于访问类的成员,->主要用于类类型的指针访问类的成员,而.运算符,主要用于类类型的对象访问类的成员。
举例

    class A
        {public :int a}
    A ma;
    A *p=&ma;

那么指针p应使用->来访问成员a,比如p->a,而ma应使用.来访问,比如ma.a区别就在这里,凡是指针就使用->,对象就使用.运算符。