Leetcode刷题笔记题解(C++):120. 三角形最小路径和

思路:动态规划,去生成一个对应的当前节点的最小路径值,对应的关系如下所示

dp[0][0] = triangle[0][0]

dp[i][0] = triangle[i][0]+dp[i-1][0]

dp[i][i] = triangle[i][i]+dp[i-1][i]

dp[i][j] = triangle[i][j]+min(dp[i-1][j-1],dp[i-1][j])

class Solution {
public:
    int minimumTotal(vector<vector<int>>& triangle) {
        int n = triangle.size();//获取行数
        vector<vector<int>>dp(n,vector<int>(n));
        dp[0][0] = triangle[0][0]; //第一行为当前值
        for(int i = 1; i < n; i++){
            dp[i][0] = dp[i-1][0] + triangle[i][0];//每一行最左边为上一行最左边+当前值
            for(int j = 1;j<i;j++){
                //(i,j)为(i-1,j-1)和(i-1,j)中的最小值+当前值
                dp[i][j] = min(dp[i-1][j-1],dp[i-1][j]) + triangle[i][j];
            }
            dp[i][i] = dp[i-1][i-1] + triangle[i][i];//每一行最右边为上一行最右边+当前值
        }
        return *min_element(dp[n-1].begin(),dp[n-1].end());
    }
};

相关推荐

  1. LeetCode练习与总结:三角形路径--120

    2024-02-19 04:10:01       30 阅读
  2. 120. 三角形路径

    2024-02-19 04:10:01       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-19 04:10:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-19 04:10:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-19 04:10:01       82 阅读
  4. Python语言-面向对象

    2024-02-19 04:10:01       91 阅读

热门阅读

  1. 力扣代码学习日记四

    2024-02-19 04:10:01       55 阅读
  2. 最长公共子序列和最长公共子串

    2024-02-19 04:10:01       62 阅读
  3. Unity笔记:数据持久化的几种方式

    2024-02-19 04:10:01       67 阅读