zoukankan      html  css  js  c++  java
  • leetcode Minimum Path Sum

    题目:还是类似于之前两题,这里给定的m*n矩阵是每个数字都有值的。求的从头到尾的最小sum是多少。还是用动态规划求。初始化的时候是先计算第一行和第一列。假设给定的数据如下:

    那么初始化后为:

    那么再定位要处理的数字到i=1和j=1处,如表中的数字2处。这个时候更新是更加它加上它的左边或者上边的较小的值。更新一次后为:

    一次类推可以将所有的更新完,最后输出grid[m-1][n-1]就可以了。

    class Solution {
    public:
        int minPathSum(vector<vector<int> > &grid) 
        {
            //if (grid.size() == 0) return 0;
            int m = grid.size(), n = grid[0].size();
            int i =1, j = 1; 
            while(j<n) { grid[0][j]+=grid[0][j-1]; j++;}
            while(i<m) { grid[i][0]+=grid[i-1][0]; i++;}
            i = 1; j = 1;
            for (; i < m; ++i)
                for (j =1 ; j < n; ++j) // 记得j重新赋值1
                {
                    grid[i][j] += min(grid[i-1][j], grid[i][j-1]);
                }
            return grid[m-1][n-1];
        }
    };

     2015/03/25:

    class Solution {
    public:
        int minPathSum(vector<vector<int> > &grid) {
            if (grid.size() == 0) return 0 ;
            int m = grid.size(), n = grid[0].size();
            for (int i = 1; i < m; ++i)
                grid[i][0] += grid[i-1][0];
            for (int j = 1; j < n; ++j)
                grid[0][j] += grid[0][j-1];
            for (int i = 1; i < m; ++i)
                for (int j = 1; j < n; ++j){
                    grid[i][j] = min(grid[i-1][j], grid[i][j-1]) + grid[i][j];
                }
            return grid[m-1][n-1];
        }
    };

    python:

    class Solution:
        # @param grid, a list of lists of integers
        # @return an integer
        def minPathSum(self, grid):
            for i in range(1, len(grid)):
                grid[i][0] += grid[i-1][0]
            for i in range(1, len(grid[0])):
                grid[0][i] += grid[0][i-1]
            for i in range(1, len(grid)):
                for j in range(1, len(grid[0])):
                    grid[i][j] = min(grid[i-1][j], grid[i][j-1]) + grid[i][j]
            return grid[len(grid)-1][len(grid[0])-1]
  • 相关阅读:
    CB文件读入后输出中文乱码问题
    2019-ICPC-沈阳站打铁感想
    计蒜客习题:画图游戏(Havel-Hakimi定理)
    计蒜客练习题:接龙(带权并查集)
    搜索----Dungeon Master
    最短路 poj1502 MPI Maelstrom
    poj 3259 Wormholes
    Silver Cow Party
    Til the Cows Come Home
    Cow Contest
  • 原文地址:https://www.cnblogs.com/higerzhang/p/4084219.html
Copyright © 2011-2022 走看看