LeetCode120 - Triangle

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode120 - Triangle相关的知识,希望对你有一定的参考价值。

题目描述:

技术分享

思路1:

利用动态规划。由于空间复杂度的限制,直接在triangle数组上进行修改,即把triangle数组当作dp数组。当j == 0时(即每一行的第一个元素),triangle[i][j] += triangle[i - 1][j];当j == col - 1时(即每一行的最后一个元素),triangle[i][j] += triangle[i - 1][j - 1];其余情况,triangle[i][j] += min(triangle[i - 1][j - 1], triangle[i - 1][j])。

class Solution {
public:
int minimumTotal(vector<vector<int>>& triangle)
{
    int row = triangle.size();
    if (row <= 0)//判空
        return 0;
    for(int i=1;i<row;i++)
        for (int j = 0;j < triangle[i].size();j++)
        {
            if (j == 0)
                triangle[i][j] += triangle[i - 1][j];
            else if (j == triangle[i].size() - 1)
                triangle[i][j] += triangle[i - 1][j - 1];
            else
                triangle[i][j] += min(triangle[i - 1][j - 1], triangle[i - 1][j]);

        }
    int minSum = INT_MAX;
    for (int k = 0;k < triangle[row - 1].size();k++)//在最后一行中找出最小的那个就是最小的和路径
        if (triangle[row - 1][k] < minSum)
            minSum = triangle[row - 1][k];
    return minSum;

}
};

 

以上是关于LeetCode120 - Triangle的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode120Triangle[DP]

leetcode 120. Triangle

leetcode 120 Triangle ----- java

LeetCode120 Triangle

LeetCode120——Triangle

LeetCode OJ 120. Triangle