leetcode 120 Triangle

想了很久 没有想到很好的方法 后来看见评论里有一个方法很好 我研究了一下 发现挺巧妙地 所以发上来 以备以后看

class Solution {
public:
    int minimumTotal(vector<vector<int>>& triangle) {
        vector<vector<int>> dp(triangle.size(), vector<int>(triangle.size(), 0)); //初始化一个宽为riangle.size()(这个是上式的第二个) 高为riangle.size()的矩阵(上式的第一个)
        for(int i = 0; i <= triangle.size() - 1; i++){
            dp[triangle.size() - 1][i] = triangle[triangle.size() - 1][i];
        }//将原三角矩阵中的最后一行赋值给 新的dp矩阵的最后一行
        for(int i = triangle.size() - 2; i >= 0; i--){
            for(int j = 0; j <= i; j++){
                dp[i][j] = min(dp[i+1][j], dp[i+1][j+1]) + triangle[i][j];//这里是核心代码 建议画出来理解下
            }
        }
        return dp[0][0];
    }
};
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Given a triangle, find the minimum path sum from top to b...
    ShutLove阅读 335评论 0 0
  • 10-16 LeetCode 120. Triangle Triangle Description Given a...
    _kkk阅读 337评论 0 1
  • 原题 给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。 比如,给出下列数字...
    Jason_Yuan阅读 1,346评论 0 1
  • 1 因为是triangle,所以第i行就有i个元素,所以有多少row,则最后一行的个数就是row个数 2 bott...
    云端漫步_b5aa阅读 172评论 0 0
  • 每到1月,世间又一年,我又增一岁。 在我生活的这个城市,有一个叫“三江口”的地方,虽然我过了半辈子...
    劳碌的闲人阅读 363评论 0 2

友情链接更多精彩内容