这题用到了STL的强大功能,简单图论,但是需要进行hash,我运用的是map来hash。
首先是建图,将父子关系连有向边,从父亲到孩子,这样我们就可以通过DFS一遍找到全部的年龄。注意map的定义。最后用一个rbt来维护最后的解有序,当然,你也可以运用向量vector来维护,总的时间复杂度是O(nlogn)的。
我的代码:
本文介绍了一种利用图论和C++ STL解决年龄计算问题的方法。通过建立父子关系图,并使用深度优先搜索(DFS)算法遍历计算各成员年龄,最终采用红黑树(RBT)或向量(vector)保持输出结果的有序性。
这题用到了STL的强大功能,简单图论,但是需要进行hash,我运用的是map来hash。
首先是建图,将父子关系连有向边,从父亲到孩子,这样我们就可以通过DFS一遍找到全部的年龄。注意map的定义。最后用一个rbt来维护最后的解有序,当然,你也可以运用向量vector来维护,总的时间复杂度是O(nlogn)的。
我的代码:

被折叠的 条评论
为什么被折叠?