LeetCode 120. Triangle
来源:互联网 发布:阿里云cdn加速oss 编辑:程序博客网 时间:2024/05/24 04:58
120. Triangle
DescriptionHintsSubmissionsSolutions
Total Accepted: 101928
Total Submissions: 306497
Difficulty: Medium
Contributor: LeetCode
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.
DescriptionHintsSubmissionsSolutions
Total Accepted: 101928
Total Submissions: 306497
Difficulty: Medium
Contributor: LeetCode
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 Solution { public int minimumTotal(List<List<Integer>> triangle) { List<Integer> list = null; int m= triangle.size(); if(m == 1) return triangle.get(0).get(0); int k = 0; for(int i = 0; i < m; i++) { k += triangle.get(i).size();//元素总个数 } int[] dp = new int[k]; dp[0] = triangle.get(0).get(0); // if(triangle.get(0).size() == 1) return triangle.get(0).get(0); int s = 1; for(int i = 1; i < m; i++) {// int s = (int) (Math.pow(2,i) - 1);//数组中起始位置 list = triangle.get(i); int n = list.size(); dp[s] = dp[s-n+1] + list.get(0); for(int j = 1; j < n-1; j++) { dp[s+j] = Math.min(dp[s+j-n],dp[s+j-n+1]) + list.get(j); } dp[s+n-1] = dp[s-1] + list.get(n-1);//最后一个元素 s += n; } int min = 10000; for(int i = k - 1; i >= k - triangle.get(m-1).size(); i--) { if(min > dp[i]) min = dp[i]; } return min; }}
阅读全文
0 0
- LeetCode 120. Triangle
- [LeetCode]120.Triangle
- [Leetcode] 120. Triangle
- [leetcode] 120.Triangle
- Leetcode 120. Triangle
- <LeetCode OJ> 120. Triangle
- 120. Triangle LeetCode
- leetcode 120. Triangle
- leetcode-120. Triangle
- LeetCode#120. Triangle
- LeetCode 120. Triangle
- [LeetCode]120. Triangle
- LeetCode *** 120. Triangle
- LeetCode-120.Triangle
- [leetcode] 120. Triangle
- [leetcode]120. Triangle
- LeetCode - 120. Triangle
- Leetcode题解 120. Triangle
- 《现代操作系统(中文第三版)》课后习题——第六章 死锁
- 布林曲线函数中的MA_Type
- java基础--逆序输出数组元素
- 微信小程序学习第一天——js注册程序(逻辑层)
- 社交数据初探汇总
- LeetCode 120. Triangle
- Windows版apache服务器下载
- Oracle安装后只有三个服务项,少了最重要的监听等项
- 用scikit-learn和pandas学习线性回归
- 结构体定义的三种方式
- 59. Spiral Matrix II
- scikit-learn 和pandas 基于windows单机机器学习环境的搭建
- mysql中UPDATE更新数据where以另一个selecet子句为结果的1093错误
- 机器学习研究与开发平台的选择