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

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

PHP - 查找數組中的所有路徑(2 邊)

PHP - 查找數組中的所有路徑(2 邊)

PHP
12345678_0001 2023-04-02 10:41:46
我在 php 中有一個巨大的數組(~800 個子數組):$arrayx = array([0] => array("side1" => "XTSWS", "side2" => "WRXXC", "value" => "150"),[1] => array("side1" => "WRXXC", "side2" => "TXXBD", "value" => "110"),[2] => array("side1" => "XTSWS", "side2" => "GVFDS", "value" => "40"),[3] => array("side1" => "XTSWS", "side2" => "ABNMDA", "value" => "1350"),[4] => array("side1" => "TTTSY", "side2" => "WRXXC", "value" => "1150"),[5] => array("side1" => "WDWDD", "side2" => "KGADSD", "value" => "10050"),[6] => array("side1" => "ZZSJH", "side2" => "PPPEIJD", "value" => "1750"),... 800);對于雙方,我試圖找到從一個值到另一個值的所有可能路徑,例如:XTSWS -> WRXXCXTSWS -> TXXBD -> WRXXCXTSWS -> TXXBD -> ZZSJH -> WRXXC在 PHP 中有什么有效的方法可以做到這一點嗎?我在 Python 等中找到了一些使用圖形/節點的示例。$values = $this->findAllPaths("XTSWS", "WRXXC");function findAllPaths($from, $to){}
查看完整描述

1 回答

?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

您將需要在 PHP 中實現回溯

由于您有 800 個元素,因此明智的做法是自己使用堆棧而不是依賴遞歸。您將需要以某種方式為已經在任何當前位置遍歷的項目“著色” ,并在回溯時取消著色,這樣您就可以避免循環。

這永遠不會非常有效,因為您正在回溯,它具有指數級的復雜性并且您沒有任何選擇以不同的方式執行此操作,因為您需要找到所有路徑。


查看完整回答
反對 回復 2023-04-02
  • 1 回答
  • 0 關注
  • 120 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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