847. Shortest Path Visiting All Nodes(一)
輸入:一個(gè)無向圖,各個(gè)節(jié)點(diǎn)的標(biāo)簽是0、1、2…N-1。graph[i][j]表示從節(jié)點(diǎn)i到節(jié)點(diǎn)j有一條邊。
輸出:返回每個(gè)節(jié)點(diǎn)都訪問一遍需要的最少步驟。
規(guī)則:各個(gè)節(jié)點(diǎn)可以重復(fù)訪問。
分析:
如果可以知道從每個(gè)節(jié)點(diǎn)開始,經(jīng)過所有節(jié)點(diǎn)的節(jié)點(diǎn)的話,那選擇最小值即可。dp[i][0000011]表示從節(jié)點(diǎn)i開始,訪問過節(jié)點(diǎn)0,節(jié)點(diǎn)1后的路徑長(zhǎng)度。
剛開始dp[0][0]=dp[1][1]…=0。也就是說每個(gè)節(jié)點(diǎn)到自身的距離是0。
BFS遍歷每一條邊。每次遍歷一條邊,dp會(huì)發(fā)生變化。例如訪問邊<0,1>。那么$dp[0][3] = dp[0][1]+1=1 $ 3 =0000011,表示從節(jié)點(diǎn)0開始,訪問了節(jié)點(diǎn)1,節(jié)點(diǎn)2.依次遍歷每條邊,最終得到完整的dp數(shù)組。只要找每個(gè)數(shù)組的[i][(1<<s.length)-1],比較大小即可。
代碼
總結(jié)
以上是生活随笔為你收集整理的847. Shortest Path Visiting All Nodes(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: idea导出配置和导入配置
- 下一篇: Floyd判圈算法