Problem link我該如何修改我的代碼,以便給我最大重量的最短路徑。
問題概述:我給出一個矩陣,我必須從一個索引轉到另一個索引最小的索引,每個索引都有一些增益,所以我必須找到最短路徑(如果有多條最短路徑可能,那麼路徑最大增益) 我的代碼:找到最大增益的最短路徑
public static int min(int x , int y ,int endx,int endy,int n ,int m,int[][] p){
int[] dirx ={1,-1,0,0 };
int[] diry={0,0,1,-1};
LinkedList<Point> som = new LinkedList<Point>();
som.add(new Point(x,y));
//dp[x][y]=p[x][y];
while(!som.isEmpty()){
Point xx = som.pop();
for(int i=0;i<4;i++){
int x1 = xx.x + dirx[i];
int y1 = xx.y + diry[i];
if(x1>=0 && x1<n && y1>=0 && y1<m && p[x1][y1]!=-1 && dp[x1][y1]==-1){
dp[x1][y1] = dp[xx.x][xx.y]+ 1;
som.add(new Point(x1,y1));
}
}
}
return dp[endx][endy];
}