标签:问题 大小 状态 移动 记录 使用 int 说明 sum
给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。
说明:每次只能向下或者向右移动一步。
示例:
输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。
思路:
class Solution { public int minPathSum(int[][] grid) { int m = grid.length; if(m ==0) return 0; int n = grid[0].length; for(int i = m-1 ; i>= 0 ;i--) for( int j = n-1 ; j>=0 ; j--){ if(i == m-1){ if(j!=n-1) grid[i][j] = grid[i][j]+grid[i][j+1]; } else{ if(j!=n-1) grid[i][j] = grid[i][j] + (int)Math.min(grid[i][j+1],grid[i+1][j]); else grid[i][j] = grid[i][j] + grid[i+1][j]; } } return grid[0][0]; } }
标签:问题 大小 状态 移动 记录 使用 int 说明 sum
原文地址:https://www.cnblogs.com/rainxbow/p/9695523.html