文章詳情頁
算法 - 用代碼獲取流程走向(Java)
瀏覽:137日期:2024-01-10 18:17:14
問題描述
需求是這樣的,有很多類似的流程如下:
有一個(gè)函數(shù),我傳入一個(gè)開始節(jié)點(diǎn)Node,能夠獲取所有的流程走向,包裝List返回,比如上面這張圖就有兩種走向:通過和不通過。我開始用遞歸來做,類似這樣:
測試了幾個(gè)流程,確實(shí)能達(dá)到效果,但是一遇到復(fù)雜的流程(上百種走向)的時(shí)候,遞歸就會有性能問題(棧溢出等)請問各位大神,像這種情況除了遞歸還有什么解法嗎?如果沒有,這種遞歸有哪里可以優(yōu)化的地方?小弟能力有限,想了幾天沒啥好辦法....
問題解答
回答1:問題是遞歸的,實(shí)現(xiàn)未必要用遞歸。可以把 '還未搜索的Node' 放到一個(gè)List中,每次找到的新Node放到List最后,下一輪搜索開始時(shí)從List最后取。
還應(yīng)當(dāng)使用動態(tài)規(guī)劃減少重復(fù)搜索。完全搜索時(shí)這個(gè)問題是NP的。
回答2:這個(gè)是工作流吧????
標(biāo)簽:
java
相關(guān)文章:
1. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個(gè)是怎么回事????2. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)3. html按鍵開關(guān)如何提交我想需要的值到數(shù)據(jù)庫4. css - width設(shè)置為100%之后列表無法居中5. ios - vue-cli開發(fā)項(xiàng)目webstrom會在stylus樣式報(bào)錯(cuò),飆紅,請大神幫忙6. javascript - 一個(gè)頁面有四個(gè)圖片,翻頁的時(shí)候想固定住某個(gè)圖片然后翻頁,如何實(shí)現(xiàn)呢?7. python - 在pyqt中做微信的機(jī)器人,要在表格中顯示微信好友的名字,卻顯示不出來,怎么解決?8. html5 - 用Egret寫的小游戲,怎么分享到微信呢?9. css3 - 怎么感覺用 rem 開發(fā)的不多啊10. objective-c - 自定義導(dǎo)航條為類似美團(tuán)的搜索欄樣式
排行榜

熱門標(biāo)簽