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

三角形

时间:2017-04-24 09:56:59      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:而且   sof   strong   ack   mic   microsoft   ros   mat   ret   

题目:给你一个三角形,求最小路径和 例如:{{2}      所以返回2+3+5+1=11

                    {3 , 4}

                   {6,  5 , 7}

                  {4 , 1,8,  3}}

思路:三角形有点像树,所以可以暴力从上到下求每条路径的和在找出最小的,,但是观察可以发现,每个数只和它上面对应的数相关,也就是说它能否都被选中,依赖于它上面那层对应的“父节点”,可以采用自上而下或者自下而上,这里采用自下而上,注意;从倒数第二层开始向上走,每次统计,从下至上到达当前层每个节点的最小值,而且不需要额外空间,直接改变原数据即可,最后第一层的唯一一个节点即为所求

 public int minimumTotal(List<List<Integer>> triangle) {
        for(int i = triangle.size() - 2; i >= 0; i--)
            for(int j = 0; j <= i; j++)
          //当前值更新为当前值加上“左右子树”较小的值 triangle.get(i).set(j, triangle.get(i).get(j)
+ Math.min(triangle.get(i + 1).get(j), triangle.get(i + 1).get(j + 1))); return triangle.get(0).get(0); }

 

三角形

标签:而且   sof   strong   ack   mic   microsoft   ros   mat   ret   

原文地址:http://www.cnblogs.com/team42/p/6754995.html

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