首页 > 其他 > 详细

Triangle

时间:2015-10-10 21:23:23      阅读:239      评论:0      收藏:0      [点我收藏+]

动态规划

 

 

 1 /*[
 2      [2],
 3     [3,4],
 4    [6,5,7],
 5   [4,1,8,3]
 6 ]
 7  
 8 
 9 The minimum path sum from top to bottom is 11 (i.e., 2 + 3 + 5 + 1 = 11). 
10 */
11 #include <iostream>
12 #include <vector>
13 #include <algorithm>
14 
15 using namespace std;
16 
17 class Solution {
18 public:
19 
20     int minimumTotal(vector<vector<int> > &triangle) 
21     
22     {
23         if (triangle.size() == 1)
24             return triangle[0][0];
25         vector<vector<int> >dp(triangle.size(), vector <int> (triangle.size()));
26         for (int i = 0; i < triangle.size(); ++i)
27             dp[triangle.size() - 1][i] = triangle[triangle.size() - 1][i];
28         for (int i = triangle.size() - 2; i >= 0; --i)
29         {
30             for (int j = 0; j <= i; ++j)
31                 dp[i][j] = (dp[i + 1][j] < dp[i + 1][j + 1] ? dp[i + 1][j] : dp[i + 1][j + 1]) + triangle[i][j];
32         }
33 
34         cout << dp[0][0] << endl;
35         return dp[0][0];
36 
37     }
38 };
39 
40 
41 int main()
42 {
43     vector<vector<int> >c = { { -1 }, { 23 }, { 1, -1, -3 } };
44     Solution A;
45     A.minimumTotal(c);

46 } 

Triangle

原文:http://www.cnblogs.com/-vector/p/4868208.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!