120. Triangle
来源:互联网 发布:c语言二级考试选择题 编辑:程序博客网 时间:2024/06/05 09:30
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.
思路就是回溯,由下向上的回溯
上图的7就是min(4,1)+6
6就是min(1,8)+5
等等等。
代码如下:
import java.util.ArrayList;import java.util.List;/** * Created by kyle on 2016/6/24. */public class Triangle2 { public static int minimumTotal(List<List<Integer>> triangle) { int m = triangle.size(); int n = triangle.get(m-1).size(); int[][] result = new int[m][n]; if(m==0){ return 0; } if(m == 1){ return triangle.get(0).get(0); } for(int j = 0 ; j < triangle.get(m-1).size(); j++){ result[m-1][j] = triangle.get(m-1).get(j); } for(int i = m-2 ; i>=0 ; i--){ for(int j = 0; j <triangle.get(i).size(); j++ ){ result[i][j] = Math.min(result[i+1][j], result[i+1][j+1]) +triangle.get(i).get(j); } } return result[0][0]; } public static void main(String[] args){ List<List<Integer>> lists = new ArrayList<>(); List<Integer> one = new ArrayList<Integer>(); one.add(1); lists.add(one); List<Integer> two = new ArrayList<Integer>(); two.add(2); two.add(3); lists.add(two); System.out.println(minimumTotal(lists)); }}上述方法空间复杂度O(n^2),时间复杂度也是O(n^2).如果可以修改triangle的话,空间复杂度可以降到O(1)。时间复杂度不知道有没有更优的解,如有知道,不吝赐教!
0 0
- 120. Triangle
- 120. Triangle
- 120. Triangle
- 120. Triangle
- 120. Triangle
- 120. Triangle
- 120. Triangle
- 120.Triangle
- 120. Triangle
- 120. Triangle
- 120. Triangle
- 120. Triangle
- 120. Triangle
- 120. Triangle
- 120.Triangle
- 120. Triangle
- 120. Triangle
- 120. Triangle
- 引用
- android操作sqlite数据库及心得
- Method Size Limit in Java
- 虚函数
- opengl中天空盒缝隙消除的解决办法!
- 120. Triangle
- win8 vs2010 openGL 配置
- 指向指针的指针
- qt 设置应用图标
- 台湾大学机器学习笔记——Neural Network 神经网络
- FFMPEG-如何对视频按时长切片与压缩
- new[n]解读
- Nginx 缓存机制 详解之二 缓存加载进程
- CSS实现的loading页面等待效果