zoukankan      html  css  js  c++  java
  • 110 最小路径和

    原题网址:https://www.lintcode.com/problem/minimum-path-sum/description

    描述

    给定一个只含非负整数的m*n网格,找到一条从左上角到右下角的可以使数字和最小的路径。

    你在同一时间只能向下或者向右移动一步

    标签
    动态规划(DP)
     
    思路:同数字三角形,创建动态规划数组dp【m】【n】,dp【i】【j】表示从左上角出发到达终点grid【i】【j】的最小路径和。
    状态转移方程:dp【i】【j】= min(dp【i-1】【j】,dp【i】【j-1】)+ grid【i】【j】;
    为计算方便,第一行和第一列可以单独初始化。
    最后 return dp【m-1】【n-1】。
     
    AC代码:
    class Solution {
    public:
        /**
         * @param grid: a list of lists of integers
         * @return: An integer, minimizes the sum of all numbers along its path
         */
        int minPathSum(vector<vector<int>> &grid) {
            // write your code here
            int row=grid.size();
        if (row==0)
        {
            return 0;
        }
        int col=grid[0].size();
        vector<vector<int>> dp(row,vector<int>(col,0));
        dp[0][0]=grid[0][0];
        for (int i=1;i<row;i++)//第一列;
        {
            dp[i][0]=dp[i-1][0]+grid[i][0];
        }
        for (int j=1;j<col;j++)//第一行;
        {
            dp[0][j]=dp[0][j-1]+grid[0][j];
        }
    
        for (int i=1;i<row;i++)
        {
            for (int j=1;j<col;j++)
            {
                dp[i][j]=min(dp[i][j-1],dp[i-1][j])+grid[i][j];
            }
        }
        return dp[row-1][col-1];
        }
    };

     

  • 相关阅读:
    CSS 引入方式
    css的选择器效率分析
    CSS样式优先级
    JSONP
    javascript跨域的几种方法
    精确获取对象的类型:Object.prototype.toString()
    MooseFS
    使用tmpfs作为缓存加速缓存的文件目录
    nginx auth
    memcached
  • 原文地址:https://www.cnblogs.com/Tang-tangt/p/9133246.html
Copyright © 2011-2022 走看看