开发者社区> 问答> 正文

多个list集合中的值形成闭环的算法

比如有四个集合:{a,b,c,d}, {e,f}, {c,g,h}, {g,d}。

集合1和集合3通过值c关联,集合3和集合4通过值g关联,集合4和集合1通过d值关联,则形成了闭环。

在比如有四个集合:{a,b,c,d}, {e,f}, {f,g,h}, {h,d,e}。 集合2和集合3通过值f关联,集合3和集合4通过值h关联,集合4和集合2通过e值关联,则形成了闭环。

这个如何实现?

多谢!

展开
收起
游客ufivfoddcd53c 2020-01-03 21:02:32 879 0
1 条回答
写回答
取消 提交回答
  • 这个是不相交集问题吧,具体不相交集代码网上很多的,这里只说下思路 例如,{a,b,c,d}, {e,f}, {c,g,h}, {g,d}, 首先拆解为单个值{a}{b}{c}{d}{e}{f}{g}{h} 假设我们以最小的值为根 1. 拆解为{a,b,c,d}为{a,b}{a,c}{a,d} ({b,c}{b,d}{c,d}由于以最小值为根,这几组可以舍弃) 2. 拆解{e,f}为{e,f} 3. {c,g,h}拆解为{c,g}{c,h} ({g,h}可以直接舍弃) 4. {g,d}拆解为{d,g}

    这样我们得到{a,b}{a,c}{a,d}{e,f}{c,g}{c,h}{d,g} 对这几组执行union,执行完后如果根相同,则为闭环,否则不是

    2020-01-03 21:02:46
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载