(M)Dynamic Programming:120. Triangle
来源:互联网 发布:手机伴奏降调软件 编辑:程序博客网 时间:2024/06/02 04:33
没有想到递归关系。看了大神的分析:到第i层的第k个顶点的最小路径长度表示为dp[i][k]。从第二行开始,triangle[i][j] = min(triangle[i - 1][j - 1], triangle[i - 1][j]), 然后两边的数字直接赋值上一行的边界值,由于限制了空间复杂度,所以我干脆直接就更新triangle数组。
class Solution {public: int minimumTotal(vector<vector<int>>& triangle) { int n = triangle.size(); for(int i = 1; i < n; ++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 res = triangle[n - 1][0]; for(int i = 0; i < triangle[n - 1].size(); ++i) res = min(res, triangle[n - 1][i]); return res; }};
阅读全文
0 0
- (M)Dynamic Programming:120. Triangle
- Triangle: Dynamic Programming解法
- leetCode刷题归纳-Dynamic Programming(120. Triangle)
- (M)Dynamic Programming:Target Sum
- [week 7][Leetcode][Dynamic Programming]Triangle
- 2014 UESTC Training for Dynamic Programming M
- (M)Dynamic Programming:338. Counting Bits
- (M)Dynamic Programming:647. Palindromic Substrings
- (M)Dynamic Programming: 413. Arithmetic Slices
- (M)Dynamic Programming:343. Integer Break
- (M)Dynamic Programming:486. Predict the Winner
- (M)Dynamic Programming:392. Is Subsequence
- (M)Dynamic Programming:2 Keys Keyboard
- (M)Dynamic Programming:516. Longest Palindromic Subsequence
- (M)Dynamic Programming,DFS:Shopping Offers
- (M)Dynamic Programming:377. Combination Sum IV
- (M)Dynamic Programming:62. Unique Paths
- (M)Dynamic Programming: 474. Ones and Zeroes
- poj1222 EXTENDED LIGHTS OUT(gauss)
- go server
- Java进阶_IO流_File类
- kotlin学习笔记-1-初步了解
- Java实现简单的表达式计算
- (M)Dynamic Programming:120. Triangle
- Oracle常用sql语句(三)之子查询
- 事务和分布式事务
- 84. Largest Rectangle in Histogram
- Servlet学习总结
- 界面和逻辑分离
- oracle中pl/sql编程(六)
- oracle内存参数调整
- ubuntu 下字典使用