题解 | #三角形最小路径和# [P0]

三角形最小路径和

http://www.nowcoder.com/practice/c9d44b73dc7c4dbfa4272224b1f9b42c

从下往上dp

f(i,j) = Min{f(i+1,j), f(i+1,j+1)} + v(i,j)
O(n^2), O(n^2)
TODO: 第二个for-loop倒着走可以空间优化至O(n)
import java.util.*;

public class Solution {
    public int minTrace (int[][] triangle) {
       int len = triangle.length;
       if (len == 0) return 0;

       // f(i,j)=Min{f(i+1,j), f(i+1,j+1)} + val(i, j)
       int[][] dp = new int[len][len];
       for (int i = len-1; i >= 0; i--) {
         for (int j = 0; j <= i; j++) {
           if (i == len-1) {
             dp[i][j] = triangle[i][j];
           } else {
             dp[i][j] = Math.min(dp[i+1][j], dp[i+1][j+1]) + triangle[i][j];
           }
         }
       }
       return dp[0][0];
    }
}
DP是真的烦 文章被收录于专栏

只是为了把DP的题集中一下方便自己复习

全部评论

相关推荐

04-01 11:08
中原工学院 Java
老六f:感觉这种培训期过了就找理由给你开了
点赞 评论 收藏
分享
03-19 09:58
河海大学 Java
最喜欢春天的奇亚籽很...:同学,是小红书不是小哄书,一眼就能看到的错误
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务