Leetcode Triangle
来源:互联网 发布:淘宝虚拟资源网 编辑:程序博客网 时间:2024/06/01 21:21
题目:
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.
分析:
这道题属于动态规划问题中找最小值问题。用动态规划四步分析法分析:
1. 状态代表到这个位置的最小值
2. 每个状态都从下一行相邻的两个元素中较小的加上当前的值得到,状态转移方程:f[i][j] = min(f[i+1][j] + f[i+1][j+1]) + value[i][j]
3. 初始值为最后一行的值
4. 答案 f[0][0]
Java代码实现:
public class Solution { public int minimumTotal(List<List<Integer>> triangle) { if(triangle==null || triangle.size()==0) return 0; int size = triangle.size(); int[][] count = new int[size][size]; for(int i=0;i<size;i++) count[size-1][i] = triangle.get(size-1).get(i); for(int i=size-2;i>=0;i--) { for(int j=0;j<=i;j++) { count[i][j] = Math.min(count[i+1][j], count[i+1][j+1])+triangle.get(i).get(j); } } return count[0][0]; }}
0 0
- LeetCode : Triangle
- [LeetCode] Triangle
- [Leetcode] Triangle
- [LeetCode] Triangle
- 【leetcode】Triangle
- LeetCode - Triangle
- [LeetCode]Triangle
- [Leetcode]Triangle
- [leetcode]Triangle
- Leetcode: Triangle
- [LeetCode] Triangle
- LeetCode-Triangle
- [leetcode] Triangle
- [LeetCode] Triangle
- LeetCode - Triangle
- 【Leetcode】Triangle
- LeetCode | Triangle
- [leetcode]Triangle
- Autolayout使用小结(一)
- 在Linux上安装Memcached服务
- Linux内核学习笔记(一)CFS完全公平调度类
- oracle之高级查询
- linux上启动Memcache报错:error while loading shared libraries: libevent-1.4.so.2
- Leetcode Triangle
- springmvc resources 读取配置静态文件目录
- Android开机流程分析 -- init进程之配置文件解析
- 数据库学习3
- leetcode-26&80 Remove Duplicates from Sorted Array I&II
- Autolayout小结(二)
- Android 手势密码
- Zepto 使用中的一些注意点
- Linux中文件查找方法大全