国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

最小路徑和

2019-11-08 02:50:43
字體:
來源:轉載
供稿:網友

給定一個只含非負整數的m*n網格,找到一條從左上角到右下角的可以使數字和最小的路徑。

從上到下從左到右的求解出從左上角到網絡中任意點得最小數字和,求和的時候具有遞歸性 可以發現 a b c e f g h j m 若要求到m處的最小值值,只需要將到g處和j處的最小值做比較取其中的小值求和即可.依此推到,首行和首列的最小值是唯一的,因此可以直接求出左上角到網絡中任意點得最小數字和. 例如:fmin = min(e,b) + f   gmin = min(f,c) + g   求出f就可以求出g

public class Solution { /** * @param grid: a list of lists of integers. * @return: An integer, minimizes the sum of all numbers along its path */ public int minPathSum(int[][] grid) { // write your code here int m = grid.length; int n = grid[0].length; int [][]dp = new int[m][n]; dp[0][0] = grid[0][0]; //首行 for(int i = 1; i < n; i++){ dp[0][i] = dp[0][i-1] + grid[0][i]; } //首列 for(int i = 1; i < m; i++){ dp[i][0] = dp[i-1][0] + grid[i][0]; } //中間區域 for(int i = 1; i < m; i++){ for(int j = 1; j < n; j++){ dp[i][j] = Math.min(dp[i-1][j], dp[i][j-1]) + grid[i][j]; } } //最小值 return dp[m-1][n-1]; }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金昌市| 黄大仙区| 来宾市| 晴隆县| 东兰县| 成安县| 盈江县| 牟定县| 大新县| 巴林右旗| 孙吴县| 新营市| 巴楚县| 泰兴市| 灵川县| 鄂托克旗| 永春县| 苍溪县| 伽师县| 哈尔滨市| 正安县| 玉溪市| 美姑县| 于田县| 吐鲁番市| 阿克苏市| 呈贡县| 黄石市| 邹平县| 宁化县| 临西县| 瓮安县| 张家港市| 祥云县| 基隆市| 漠河县| 桃江县| 江陵县| 淳安县| 两当县| 合阳县|