120. Triangle

时间:2019-12-07 16:20:05   收藏:0   阅读:89
class Solution
{
public:
    int minimumTotal(vector<vector<int>>& triangle)
    {
        int row = triangle.size();
        int col = triangle[row - 1].size();
        vector<vector<int>> dp(row,vector<int>(col));

        for (int i = 0; i < col; ++i)
        {
            dp[row - 1][i] = triangle[row - 1][i];
        }

        for (int i = row - 2; i >= 0; i--)
        {
            for (int j = 0; j < triangle[i].size(); j++)
            {
                dp[i][j] = std::min(dp[i + 1][j], dp[i + 1][j + 1]) + triangle[i][j];
            }
        }

        return dp[0][0];
    }
};

原文:https://www.cnblogs.com/Manual-Linux/p/12001737.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!