今天面试有一道算法题,有一个上级和下属的关系数组如下:
$teams = [
'一'=>[
'三'=>null,
'四'=>[
'五'=>null,
'六'=>[
'七'=>null,
'八'=>null
],
]
],
'二'=>[
'九'=>[
'十'=>[
'十一'=>null,
'十二'=>[
'十三'=>null,
'十四'=>null
],
],
],
]
];
题目让输出所有是是父的下属,如:三没有下属,六有七、八两个下属,让输出如下结果:
一:三,四,五,六,七,八
三:
四:五,六,七,八
五:
六:七,八
七:
八:
二:九,十,十一,十二,十三,十四
九:十,十一,十二,十三,十四
十:十一,十二,十三,十四
十一:
十二:十三,十四
十三:
十四:
看题意应该是递归无疑了,但是比如八这个元素在结果中出现多次,所以一层递归搞不定,最后结果见如下代码(代码直接用截图了,为了让大家也手敲一下,截图用的是vscode的Polacode插件):