zoukankan      html  css  js  c++  java
  • leetcode(64)最小路径和

    最小路径和

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

    在这里其实没必要做空间复杂度的处理,因为没有用多余的空间,所以完全可以用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];
        }
    }
  • 相关阅读:
    层模型--绝对定位(position:absolute)
    什么是层模型?
    浮动模型
    流动模型(二)
    插值方法
    CFS调度分析(内核版本:2.6.34)
    CRC检验
    ubuntu误删home目录
    随想
    Android——Activity生命周期
  • 原文地址:https://www.cnblogs.com/erdanyang/p/11249144.html
Copyright © 2011-2022 走看看