矩陣最短路徑

2021-10-10 05:17:31 字數 831 閱讀 8543

題目描述:

求從左上角到右下角的權重和最小的路徑,可以向上、下、左、右四個方向行走

思路:動態規劃:先根據上、下、左、右四個位置計算走到該單元格的最短距離;然後根據得到的單元和最短距離更新上、下、左、右四個位置的最短距離;

m,n=5,3

arr=[[1,1,1],[5,1,1],[1,1,1],[1,5,7],[1,1,1]]

weight=[[float("inf")]*n for _ in range(m)]

for i in range(m):

for j in range(n):

if i==0 and j==0:

weight[i][j]=arr[i][j]

else:

cur_min=float("inf")

if i-1>=0:

cur_min=min(cur_min,weight[i-1][j])

if i+1=0:

cur_min = min(cur_min, weight[i ][j-1])

if j+1=0:

weight[i - 1][j]=min(weight[i][j]+arr[i-1][j],weight[i-1][j])

if i+1=0:

weight[i ][j-1] = min(weight[i][j] + arr[i ][j-1], weight[i ][j-1])

if j+1weight[i][j + 1] = min(weight[i][j] + arr[i][j + 1], weight[i][j + 1])

print(weight)

矩陣求最短路徑

題目 給定乙個m n的矩陣,定義一條路徑為 從矩陣左上頂點數字出發到達右下數字,每一次只可以從乙個數字出發向右移動一步或向下移動一步,定義路徑和為 路徑經過的數字的和。要求編寫乙個程式,找到路徑和最小的那條路徑,並給出最小路徑和。給定如圖所示矩陣 一條路徑為2 0 3 6 9 5,路徑和為25 2 ...

最短路徑 鄰接矩陣

思路 先記錄1到所有點的距離 沒有連線記為無窮大 為到達該點的最短路徑長,然後從1開始利用貪心思想依次找出到下乙個連線點的最短距離,然後再找以該點為基準的下乙個距離最近的點,判斷從1先到乙個點再到該點的距離與從1直接到該點距離的大小,若小,則更新dis距離長,否則不更新 若不理解,建議看看簡單易懂 ...

Codeup最短路徑 最短路徑

n個城市,標號從0到n 1,m條道路,第k條道路 k從0開始 的長度為2 k,求編號為0的城市到其他城市的最短距離。第一行兩個正整數n 2 n 100 m m 500 表示有n個城市,m條道路,接下來m行兩個整數,表示相連的兩個城市的編號。n 1行,表示0號城市到其他城市的最短路,如果無法到達,輸出...