leetcode - Triangle
2013-10-27 15:24 张汉生 阅读(154) 评论(0) 编辑 收藏 举报
1 class Solution { 2 public: 3 int minimumTotal(vector<vector<int> > &triangle) { 4 // Note: The Solution object is instantiated only once and is reused by each test case. 5 const int maxN = 1000000000; 6 int n = triangle.size(); 7 if (n<=0) 8 return 0; 9 vector<int> rlt(n,0); 10 rlt[0] = triangle[0][0]; 11 int last, cur; 12 for (int i=1; i<n; i++){ 13 last = rlt[0]; 14 rlt[0]=rlt[0]+triangle[i][0]; 15 for (int j=1; j<i; j++){ 16 cur = rlt[j]; 17 rlt[j] = (cur<=last?cur:last) + triangle[i][j]; 18 last = cur; 19 } 20 rlt[i] = last+triangle[i][i]; 21 } 22 int min = rlt[0]; 23 for (int i=1; i<n; i++) 24 if (rlt[i]<min) 25 min = rlt[i]; 26 return min; 27 } 28 };