比如有四个集合:{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值关联,则形成了闭环。
这个如何实现?
多谢!
这个是不相交集问题吧,具体不相交集代码网上很多的,这里只说下思路 例如,{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,执行完后如果根相同,则为闭环,否则不是
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。