LeetCode 120. Triangle

来源:互联网 发布:java技术培训机构 编辑:程序博客网 时间:2024/06/03 21:36

描述

求从三角形顶点走到最下方的最短路

解决

动态规划


class Solution {public:    int minimumTotal(vector<vector<int>>& triangle) {        int row_length = triangle.size();        vector<vector<int>> res;        for (int i = 0; i < row_length; ++i)        {            vector<int> tmp(i + 1, 0);            res.push_back(tmp);        }        res[0][0] = triangle[0][0];        for (int i = 1; i < row_length; ++i)        {            for (int j = 0; j <= i; ++j)            {                if (j != i)                    res[i][j] = j > 0 ? min(res[i - 1][j - 1], res[i - 1][j]) + triangle[i][j] : res[i - 1][j] + triangle[i][j];                else                    res[i][j] = res[i - 1][j - 1] + triangle[i][j];              //  cout << "there" << res[i][j] << endl;            }        }        return *min_element(res[row_length - 1].begin(), res[row_length - 1].end());    }};
0 0
原创粉丝点击