[leetcode-120]Triangle(c++)
来源:互联网 发布:sql语句销量榜 编辑:程序博客网 时间:2024/05/16 01:39
问题描述:
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.
分析:使用动态规划算法,对于每一行而言,f(i,j) = min(f(i-1,j-1),f(i-1,j)+val; 然后查看最后一行的情况。
代码如下:8ms
class Solution {public: int minimumTotal(vector<vector<int>>& triangle) { int n = triangle.size(); if(n<=0) return 0; vector<int> prev = triangle.at(0); if(prev.size()<=0) return 0; for(int i = 1;i<n;i++){ vector<int> cur = triangle.at(i); for(int j = 0;j<cur.size();j++){ int val = INT_MAX; if(j-1>=0){ if(val>prev.at(j-1)) val = prev.at(j-1); } if(j<prev.size()) if(val>prev.at(j)) val = prev.at(j); cur[j] += val; } prev = cur; } int min = prev.at(0); for(int i = 1;i<prev.size();i++){ if(min>prev.at(i)) min = prev.at(i); } return min; }};
0 0
- [leetcode-120]Triangle(c++)
- 【LeetCode-120】Triangle(C++)
- [C++]LeetCode: 81 Triangle
- Leetcode 120 Triangle
- LeetCode 120: Triangle
- LeetCode(120)Triangle
- LeetCode: Triangle [120]
- LeetCode 120 Triangle
- LeetCode 120 Triangle
- [leetcode 120] Triangle
- [Leetcode 120, Medium] Triangle
- leetcode || 120、Triangle
- Triangle - LeetCode 120
- Leetcode[120]-Triangle
- LeetCode(120) Triangle
- Leetcode #120 Triangle
- leetcode 120: Triangle
- 【LeetCode】(120)Triangle (Medium)
- xilinx ise 的planahead的使用1
- 如何在servlet中将数据封装成JSON格式之后传到前台
- 退出App
- leetcode——Product of Array Except Self
- MVC4使用Devexpress Report建立主从报表
- [leetcode-120]Triangle(c++)
- Cocos2d-JS中使用Cocos Studio资源05:帧动画
- 死锁实现和怎样分析死锁
- 2015.8.12
- leetcode——Sliding Window Maximum
- hadoop学习笔记 Hadoop工作过程(待完善)
- 单例模式详解
- 集成CCFlow工作流与GPM的办公系统驰骋CCOA介绍(一)
- 同义词信息的查询