[问题]迭代层数未知

楼主: keven92110 (感恩师傅)   2019-04-15 13:16:11
大家好,
最近遇到一个找最小set的问题,举个例:
A=[{1,2,3}, {4,5}]
B=[{3,4,5}, {1,3,4}, {1,5}]
A,B 列表内的set互相配对后,
找出长度最少的set有两组: {3,4,5}, {1,4,5}
因此output为 [{3,4,5}, {1,4,5}]
若是以上的例子通常只要两层for循环就写出来了,
但现在列表的数量未知,可能有A,B,C,D....
请教各位高手有没有什么比较好的解法
作者: jiyu520 (不要鲫鱼我)   2019-04-15 13:20:00
只要最小的组合?直接挑选出各自最小数量的?了解意思,那A,B,C,D要两两做、还是要一起?https://imgur.com/a/CsSSZru用*做呢?
作者: AlaRduTP (Eden)   2019-04-15 15:45:00
https://ideone.com/bKMgLl这样如何其实方法很多 重点只在于要把组合联集的函数和取出最短长度的函数分开 全部组合完再找最短就好了
作者: adrianshum (Alien)   2019-04-15 20:48:00
只有我看了几次还看不懂要求吗?
作者: cutekid (可爱小孩子)   2019-04-16 01:29:00
看不懂+1 (哈)
作者: bibo9901 (function(){})()   2019-04-16 02:02:00
应该是: 求 i,j 使得 A[i]∪B[j] 有最少的元素一般化,求 {i_k} 使得 ∪A_k[i_k] 有最少的元素
作者: adrianshum (Alien)   2019-04-16 10:04:00
楼上,可是我就是搞不懂output 的 {1,4,5} 从哪来的,明明 这从没在 A 或 B 出现嘛...
作者: jiyu520 (不要鲫鱼我)   2019-04-16 10:19:00
"互相配对" -> set(setA元素和setB元素) 的意思啦
作者: adrianshum (Alien)   2019-04-16 10:27:00
喔!互相配对原来是这意思!建议OP 下次直接说UNION吧...
作者: cutekid (可爱小孩子)   2019-04-16 11:04:00
我看了 bibo 大的解释才懂(哈)

Links booklink

Contact Us: admin [ a t ] ucptt.com