如图,设定有N个节点,相互之间可能存在链接。
问题:
输入数组Arr,Arr为类似['ab', 'ak', 'ad', 'bc', 'bl', 'ck', 'ce', 'dg', 'df', 'ef', 'fm', 'gk’]的数组,标明了两两节点的数据
输入一个M,M代表经过M个节点后(除自己之外),回到出发点。
如何得到不重复的所有组合,时间复杂度要低?
请提供下JS代码或者伪代码。
比如,如下求经过三个节点解
var arr = ['ab', 'ak', 'ad', 'bc', 'bl', 'ck', 'ce', 'dg', 'df', 'ef', 'fm', 'gk']
function analyze(arr, m) {
// 这个逻辑怎么写的….. = =?
return []
}
// 比如 m = 3
analyze(arr, 3) => ['adgk','abck']
备注:这似乎是一个很低级的算法问题,但我确实比较菜,请各位大神指点下。
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…