Leetcode#120 Triangle

原题地址

 

数字三角,经典动归题。

编码时可状态压缩成1维数组

 

代码:

 1 int minimumTotal(vector<vector<int> > &triangle) {
 2         if (triangle.empty()) return -1;
 3         
 4         vector<int> layer(triangle[triangle.size() - 1]);
 5         
 6         for (int i = triangle.size() - 2; i >= 0; i--) {
 7             vector<int> upperLayer;
 8             for (int j = 0; j <= i; j++)
 9                 upperLayer.push_back(triangle[i][j] + min(layer[j], layer[j + 1]));
10             layer = upperLayer;
11         }
12         
13         return layer[0];
14 }

 

posted @ 2015-01-30 15:21  李舜阳  阅读(114)  评论(0编辑  收藏  举报