#include <iostream> (30316)#include <vector> #include <cstring> class Solution { public: int minimumTotal(std::vector<std::vector<int>> triangle) { int n = triangle.size(); int dp[n + 1][n + 1]; // 使用 memset memset(dp, 0, sizeof(dp)); // 从三角形的最后一行开始递推。 for (int i = n - 1; i >= 0; i--) { for (int j = 0; j <= i; j++) { dp[i][j] = std::min(dp[i + 1][j], dp[i + 1][j + 1]) + triangle[i][j]; } } return dp[0][0]; } };
点赞 评论

相关推荐

牛客网
牛客企业服务