[問題] 如何確認各集合是否能合併呢?

看板C_and_CPP作者 (蘇打)時間14年前 (2009/10/22 20:23), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/1
我有一些set 假設 set1 : { 1, 2, 3, 4, 5 } set2 : { 1, 10, 20, 30 } set3 : { 21, 31, 41 } set4 : { 30, 40, 50, 60 } 若一集合與另一集合有相同的項目 則可以合併 故上述例子中,最後要得出 set1 : { 1, 2, 3, 4, 5, 10, 20, 30, 40, 50, 60 } set2 : { 21, 31, 41 } 有什麼比較有效率的方式呢? 現在我的方式是兩個迴圈,讓他比對項目 若有項目可以合併則合併 然後外面在用一個大的while去跑,直到全部都合併完成才結束 不過這樣似乎沒什麼效率@@ 煩請高手指導,感謝:) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.138.152.129

10/22 21:46, , 1F
vector有set可以去跑的樣子
10/22 21:46, 1F

10/22 21:49, , 2F
把 set#x 標記到數字上, 然後一一 union 起來
10/22 21:49, 2F

10/22 21:50, , 3F
標記到數字上可以先排序後二分搜
10/22 21:50, 3F
文章代碼(AID): #1Au4xRJr (C_and_CPP)