leetcode 120. Triangle
2016-08-18 20:01
330 查看
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
The minimum path sum from top to bottom is
方法一
bottom up 从下往上
第二种方法,从上往下
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).
方法一
bottom up 从下往上
public class Solution { public int minimumTotal(List<List<Integer>> triangle) { if (triangle == null || triangle.size() == 0) { return 0; } int n = triangle.size(); int[][] dp = new int ; for (int i = 0; i < n; i++) { dp[n - 1][i] = triangle.get(n-1).get(i); } for (int i = n - 2; i >= 0; i--) { for (int j = 0; j < triangle.get(i).size(); j++) { dp[i][j] = Math.min(dp[i + 1][j], dp[i + 1][j + 1]) + triangle.get(i).get(j); } } return dp[0][0]; } }
第二种方法,从上往下
public class Solution { public int minimumTotal(List<List<Integer>> triangle) { if (triangle == null || triangle.size() == 0) { return 0; } int n = triangle.size(); int[][] dp = new int ; dp[0][0] = triangle.get(0).get(0); for (int i = 1; i < n; i++) { dp[i][0] = dp[i - 1][0] + triangle.get(i).get(0); dp[i][i] = dp[i - 1][i - 1] + triangle.get(i).get(i); } for (int i = 1; i < n; i++) { for (int j = 1; j < i; j++) { dp[i][j] = Math.min(dp[i - 1][j - 1], dp[i - 1][j]) + triangle.get(i).get(j); } } int min = dp[n - 1][0]; for (int i = 1; i < n; i++) { min = Math.min(min, dp[n - 1][i]); } return min; } }
相关文章推荐
- 【LeetCode】120. Triangle (3 solutions)
- leetcode120. Triangle
- LeetCode 120. Triangle
- leetcode 120. Triangle
- Leetcode 120. Triangle
- LeetCode120. Triangle
- 【LeetCode】120. Triangle 基于C++和Java的分析及解法,动态规划
- LeetCode 120. Triangle
- leetcode题解-120. Triangle
- [Leetcode] 120. Triangle
- LeetCode *** 120. Triangle
- LeetCode 120. Triangle (Python)最优解--Apolo_Shane
- [leetcode] 120. Triangle
- Leetcode-120. Triangle
- [leetcode]120. Triangle
- 【LeetCode】120. Triangle
- [LeetCode] 120. Triangle
- LeetCode 120. Triangle
- [leetcode]120. Triangle
- 第十四周:[leetCode] 120. Triangle