码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode(64)最小路径和

时间:2019-07-26 11:46:06      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:动态规划   循环   复杂   public   自底向上   pat   for   grid   解题思路   

最小路径和

解题思路:动态规划+自底向上

在这里其实没必要做空间复杂度的处理,因为没有用多余的空间,所以完全可以用m*n的循环方式

class Solution {
    public int minPathSum(int[][] grid) {
        int xlen = grid.length;
        int ylen = grid[0].length;
        int min =  Math.min(xlen,ylen);
        int max = Math.max(xlen,ylen);
        if(min==xlen){
            for(int i=1;i<xlen+ylen-1;++i){
                for(int j=0;j<min;++j){
                    if(i-j>=0&&i-j<max){
                        if(j==0){
                            grid[j][i-j] += grid[j][i-j-1];
                        }else if(i-j==0){
                            grid[j][i-j] += grid[j-1][i-j];
                        }else{
                            grid[j][i-j] += Math.min(grid[j][i-j-1],grid[j-1][i-j]);
                        } 
                    }
                }
            }
        }else{
            for(int i=1;i<xlen+ylen-1;++i){
                for(int j=0;j<min;++j){
                    if(i-j>=0&&i-j<max){
                        if(j==0){
                            grid[i-j][j] += grid[i-j-1][j];
                        }else if(i-j==0){
                            grid[i-j][j] += grid[i-j][j-1];
                        }else{
                            grid[i-j][j] += Math.min(grid[i-j][j-1],grid[i-j-1][j]);
                        } 
                    }
                }
            }
        }
        return grid[xlen-1][ylen-1];
    }
}

 

leetcode(64)最小路径和

标签:动态规划   循环   复杂   public   自底向上   pat   for   grid   解题思路   

原文地址:https://www.cnblogs.com/erdanyang/p/11249144.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!