【DP】Triangle
来源:互联网 发布:办公软件excel2007 编辑:程序博客网 时间:2024/05/22 09:48
Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.
For example, given the following triangle
[ [2], [3,4], [6,5,7], [4,1,8,3]]
The minimum path sum from top to bottom is 11
(i.e., 2 + 3 + 5 + 1 = 11).
public class Solution { public int minimumTotal(ArrayList<ArrayList<Integer>> triangle) { if(triangle == null) return 0; int len = triangle.size(); if(len == 0 ) return 0; int d[][] = new int[len][len]; for(int i=0; i<len; i++){ for(int j=0; j<i+1; j++){ int temp = triangle.get(i).get(j); if(i==0 && j==0) d[i][j] = temp; else if(j==0) d[i][j] = temp + d[i-1][j]; else if(i == j) d[i][j] = temp + d[i-1][j-1]; else{ int v1 = temp + d[i-1][j]; int v2 = temp + d[i-1][j-1]; if(v1 < v2) d[i][j] = v1; else d[i][j] = v2; } } } Arrays.sort(d[len-1]); return d[len-1][0]; }}
解法二:转化成o(n)空间,注意遍历j的方向从大到小,不然会产生覆盖
public class Solution { public int minimumTotal(ArrayList<ArrayList<Integer>> triangle) { if(triangle == null) return 0; int len = triangle.size(); if(len == 0 ) return 0; int d[] = new int[len]; for(int i=0; i<len; i++){ for(int j=i; j>=0; j--){//从大到小,防止覆盖 int temp = triangle.get(i).get(j); if(i==0 && j==0) d[j] = temp; else if(j==0) d[j] = temp + d[j]; else if(i == j) d[j] = temp + d[j-1]; else{ int v1 = temp + d[j]; int v2 = temp + d[j-1]; if(v1 < v2) d[j] = v1; else d[j] = v2; } } } Arrays.sort(d); return d[0]; }}
0 0
- 【DP】Triangle
- DP Triangle
- Triangle ---DP
- DP:The Triangle
- The Triangle 经典DP
- 【DP入门】The Triangle
- The Triangle 简单DP
- POJ1163 The Triangle 【DP】
- Leetcode dfs&dp Triangle
- poj1163The Triangle(DP)
- 【Leetcode】Triangle (DP)
- [leetcode][DP] Triangle
- LeetCode Triangle(dp)
- leetcode dp之Triangle
- poj1163 dp the triangle
- The Triangle 经典DP
- poj1163The Triangle(DP)
- 120. Triangle(dp)
- eclipse中代码风格设置
- [ZT]一个三十岁男人的婚姻思考(二)
- Java NIO系列教程(六) Selector
- [ZT]一个三十岁男人的婚姻思考(三)
- [ZT]一个三十岁男人的婚姻思考(四)
- 【DP】Triangle
- [ZT]一个三十岁男人的婚姻思考(五)
- [ZT]美资,台资,国有企业比较 经典!
- [ZT]"熊猫烧香"制造者回忆录
- MC9S12芯片知识相关
- 放假了
- [ZT]“你可以安全关机”解决方案
- 优先队列priority_queue用法
- 放完年假,开始上班了