[問題]迭代層數未知

作者: 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