亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

連接房間或卷的分組 - 具有挑戰性的問題

連接房間或卷的分組 - 具有挑戰性的問題

楊__羊羊 2022-09-13 09:15:58
事實證明,這個問題比我原先想象的要困難得多。我有一個連通房列表。每間客房都設有一扇關閉或打開的門。在任何時候,我都想知道哪些房間通過敞開的門連接在一起,并將它們標記為連接房間組1,連接房間組2等。有一篇關于堆棧溢出的帖子討論了如何生成隨機連接的房間并跟蹤哪些房間已連接。基本上定義一個矩陣/數組。然后,如果已連接房間,則可以使用真值或假值填充數組。因此,如果房間2和4是相連的,那么類似。矩陣如下所示:conn[a][b]conn[2][4] = trueconn[4][2] = true+--------+--------+--------+--------+--------+| Rooms  | Room 1 | Room 2 | Room 3 | Room 4 |+--------+--------+--------+--------+--------+| Room 1 | N/A    | false  | false  | false  || Room 2 | false  | N/A    | false  | true   || Room 3 | false  | false  | N/A    | false  || Room 4 | false  | true   | false  | N/A    |+--------+--------+--------+--------+--------+更復雜的情況如下(2號房間和3號房間的門緊閉):+----+----+----+| R1   R2 | R3 |+    +----+    +| R5 |    | R4 |+----+    +----+矩陣如下所示:+--------+--------+--------+--------+--------+--------+| Rooms  | Room 1 | Room 2 | Room 3 | Room 4 | Room 5 |+--------+--------+--------+--------+--------+--------+| Room 1 | N/A    | true   | false  | false  | true   || Room 2 | true   | N/A    | false  | false  | false  || Room 3 | false  | false  | N/A    | true   | false  || Room 4 | false  | false  | true   | N/A    | false  || Room 5 | true   | false  | false  | false  | N/A    |+--------+--------+--------+--------+--------+--------+我認為我有一個聰明的想法,通過僅循環遍歷位于N / As上方的單元格并將每行視為不同的“連接房間組”來對連接的房間進行分組:+--------+--------+--------+--------+--------+--------+| Rooms  | Room 1 | Room 2 | Room 3 | Room 4 | Room 5 |+--------+--------+--------+--------+--------+--------+| Room 1 | N/A    | true   | false  | false  | true   || Room 2 |        | N/A    | false  | false  | false  || Room 3 |        |        | N/A    | true   | false  || Room 4 |        |        |        | N/A    | false  |+--------+--------+--------+--------+--------+--------+而實際卷將全部連接,因此應該只有一個Connected Group 1: [1,2,3,4,5]我決定用房間和門來談談我的問題,但我的實際問題略有不同。在高層次上,我正在制作一個分析工具,用戶可以通過在體積之間打開/關閉閥門來隔離體積。該工具需要出于不同的原因將各個體積組合在一起,例如,直觀地指示連接的體積,并對每個分組的體積運行壓力均衡計算。我考慮過的對連接的卷進行分組的每個架構似乎都失敗了。是否有任何出色的堆棧溢出用戶有智能解決方案來分組連接的房間?我傾向于用python編程,但我精通多種語言。隨意從概念上或通過您喜歡的非古老語言回答問題。
查看完整描述

1 回答

?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

我相信你在這里所做的是在鄰接矩陣中尋找連接的組件。您的房間是節點,如果它們已連接,它們將共享一個邊緣。

下面是指向算法的一些偽代碼的鏈接,該算法應以 DFS 和 BFS 方式解決您的問題。


查看完整回答
反對 回復 2022-09-13
  • 1 回答
  • 0 關注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號