64. 最小路径和

最小路径和

描述 :

给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。

说明:每次只能向下或者向右移动一步。

题目 :

LeetCode 64.最小路径和

64. 最小路径和

64. 最小路径和_第1张图片

解析 :

class Solution {
    public int minPathSum(int[][] grid) {
        int m = grid.length;
        int n = grid[0].length;
        int[][] arr = new int[m][n];
        for(int i = 0;i < m;i++){
            for(int j = 0;j < n;j++){
                if(i == 0 && j == 0){
                    arr[i][j] = grid[i];
                }else{
                    int top = i - 1 >= 0 ? arr[i - 1][j] + grid[i][j] : Integer.MAX_VALUE; 
                    int left = j - 1 >= 0 ? arr[i][j - 1] + grid[i][j] :
Integer.MAX_VALUE;
                    arr[i][j] = Math.min(top,left);
                }
            }
        }

        return arr[m - 1][n - 1];
    }
}

你可能感兴趣的:(算法,数据结构,leetcode,java)