• Leetcode: Minimum Path Sum


    Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.
    
    Note: You can only move either down or right at any point in time.

    Unique Path问题相似,是一个DP问题,解决问题的方案依然是建造一个新矩阵,每个元素值是从top left到该点的最短距离。递归式可以根据这个写出来,并且一旦计算出了到该点的最短距离,就把它存起来以备其他点使用。

    递推式是res[i][j]=min(res[i-1][j], res[i][j-1])+grid[i][j]。总共进行两层循环,时间复杂度是O(m*n)。空间复杂度本来应该是O(M*N)的一个矩阵,但是我们实际需要的其实只有上一行的信息,这样可以省去一维,只需要O(m)就够了

    注意12行是从左到右

     1 public int minPathSum(int[][] grid) {
     2     if(grid == null || grid.length==0 || grid[0].length==0)
     3         return 0;
     4     int[] res = new int[grid[0].length];
     5     res[0] = grid[0][0];
     6     for(int i=1;i<grid[0].length;i++)
     7     {
     8         res[i] = res[i-1]+grid[0][i];
     9     }
    10     for(int i=1;i<grid.length;i++)
    11     {
    12         for(int j=0;j<grid[0].length;j++)
    13         {
    14             if(j==0)
    15                 res[j] += grid[i][j];
    16             else
    17                 res[j] = Math.min(res[j-1], res[j])+grid[i][j];
    18         }
    19     }
    20     return res[grid[0].length-1];
    21 }
  • 相关阅读:
    git add --all
    docker进入数据库
    类里面函数调用
    http状态码
    在 python 中,for … else
    类怎么传参数 初始化函数
    Jmeter安装配置环境---小白看图安装
    冒泡排序
    Fiddler抓包【7】_次要功能和第三方插件
    Fiddler抓包【6】_Fiddler Script
  • 原文地址:https://www.cnblogs.com/EdwardLiu/p/3958961.html
Copyright © 2020-2023  润新知