码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode] Triangle

时间:2014-07-17 14:03:41      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   strong   io   for   

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,f[i,j] 表示从(0,0)到(i,j)的路径最小和,然后比较最后一行的最小值。top to down方法

 1 class Solution {
 2     public:
 3     // form top to down
 4     int minimumTotal(vector<vector<int> > &triangle) {
 5 
 6         size_t rowNum = triangle.size();
 7         if(rowNum == 0)
 8             return 0;
 9 
10         vector<vector<int> >f(rowNum);
11 
12         for(size_t i = 0 ; i< rowNum; i++)
13         {
14             f[i].resize(i+1, 0);
15         }   
16 
17         for(size_t i = 0 ; i< rowNum; i++)
18         {   
19             //printVector(triangle[i]);
20         }   
21 
22     
23         f[0][0] = triangle[0][0];
24         for(size_t i = 1 ; i< rowNum; i++)
25         {   
26             for(size_t j = 0; j <= i; j++)
27             {   
28                 if(j == 0)
29                     f[i][j] = f[i-1][j] + triangle[i][j];
30                 else if(j == i)
31                     f[i][j] = f[i-1][j-1] + triangle[i][j];
32                 else
33                 {
34                     int a = f[i-1][j-1];
35                     int b = f[i-1][j];
36                     f[i][j] = min(a, b) + triangle[i][j];
37                 }
38             }
39         }
40 
41         int res = INT_MAX;
42         for(size_t i = 0 ; i< rowNum; i++)
43         {
44            // printVector(f[i]);
45             res = min(res, f[rowNum-1][i]);
46         }
47 
48         return res;
49     }
50 };

[LeetCode] Triangle,布布扣,bubuko.com

[LeetCode] Triangle

标签:style   blog   color   strong   io   for   

原文地址:http://www.cnblogs.com/diegodu/p/3850660.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!