Chinaunix首页 | 论坛 | 博客
  • 博客访问: 40268
  • 博文数量: 37
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 372
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-12 23:27
文章分类

全部博文(37)

文章存档

2014年(5)

2013年(32)

我的朋友

分类: C/C++

2013-12-02 10:02:46

从三角形底部开始。到达每个元素的最小路径和为到上一层与它相邻两个元素最短路径和中较小者加上该元素的值。最后结果就是到第二层两个元素最短路径和中小者与第一行那个元素的和。



点击(此处)折叠或打开

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

阅读(127) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~