Triangle 三角形求最小路径和 @LeetCode
来源:互联网 发布:自动打铃软件 编辑:程序博客网 时间:2024/06/06 07:38
从底向上DP
package Level3;import java.util.ArrayList;/** * Triangle * 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).Note:Bonus point if you are able to do this using only O(n) extra space, where n is the total number of rows in the triangle. * */public class S120 {public static void main(String[] args) {}public int minimumTotal(ArrayList<ArrayList<Integer>> triangle) { int rowLen = triangle.size(); // dp数组用来存储每一格子的最优解 int[][] sum = new int[rowLen][rowLen]; // 最底下一行 ArrayList<Integer> last = triangle.get(triangle.size()-1); for(int i=0; i<last.size(); i++){ sum[rowLen-1][i] = last.get(i); } // Bottom-up DP for(int i=rowLen-2; i>=0; i--){ ArrayList<Integer> row = triangle.get(i); for(int j=0; j<=i; j++){ sum[i][j] = Math.min(sum[i+1][j], sum[i+1][j+1]) + row.get(j); } } return sum[0][0]; }}
public class Solution { public int minimumTotal(List<List<Integer>> triangle) { for(int i=triangle.size()-2; i>=0; i--) { List<Integer> list = triangle.get(i); for(int j=0; j<list.size(); j++) { int val = list.get(j); list.set(j, val+Math.min(triangle.get(i+1).get(j), triangle.get(i+1).get(j+1))); } } return triangle.get(0).get(0); }}
- Triangle 三角形求最小路径和 @LeetCode
- Triangle 三角形求最小路径和 @leetcode
- Leetcode 120 Triangle 三角形最小路径和
- 【LeetCode】triangle求最小和路径
- LeetCode-120:Triangle (三角形列表的最小路径和) -- medium
- LeetCode -- Triangle 路径求最小和( 动态规划问题)
- Triangle三角形的最小路径和
- triangle- 求从顶向下的三角形的最小路径和问题
- LeetCode | Triangle(三角形路径和)
- 最小路径和—Triangle
- [LeetCode]-Triangle 求三角形中从顶到底最短距离
- Triangle Path 寻找最小和路径
- Array----- 120. Triangle(计算路径最小和)
- leetcode之Triangle(三角形的最短路径)
- [LeetCode]Triangle三角形
- Leetcode:Triangle 数字三角形
- leetcode:Triangle 三角形
- Triangle --找三角形数组中最小的路径(重重重)
- UVA 10003 —— 区间DP
- PS脚本修改DisplayName
- ViewPager加入缩放功能后滑动卡顿问题
- C#发送邮件
- Android APK系列4-------Android编译APK后的系统结构
- Triangle 三角形求最小路径和 @LeetCode
- uipc_mbuf.c -27mbuf函数
- 负载均衡算法大全
- Knockout.js入门
- ios 隐藏键盘
- socket函数-4
- mysql 数据库使用
- Windows_2008_R2+SQL_2008R2 集群环境搭建(VMware平台)
- C/C++ 50名优秀网站和网页清单