LeetCode_Triangle
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.
  分析:This problem is more likely to be a (dynamic programming) DP problem,
where a[n][i] = a[n][i]+min(a[n-1][i], a[n-1][i-1]).
Note that in this problem, "adjacent" of a[i][j] means a[i-1][j] and a[i-1][j-1], if available(not out of bound), while a[i-1][j+1] is not "adjacent" element.
The minimum of the last line after computing is the final result.
class Solution {
public:
    int minimumTotal(vector<vector<int> > &triangle) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        int len = triangle.size();
        for( int i = ; i< len ; i++)
          for( int j = ; j < triangle[i].size(); j++){
            if(j == ){
                triangle[i][j] += triangle[i-][j];
                continue;
            }
            if(j == triangle[i].size() -){
                triangle[i][j] += triangle[i-][j-];
                continue;
            }
            int val = triangle[i-][j] < triangle[i-][j-] ? triangle[i-][j]
                                            :triangle[i-][j-] ;
           triangle[i][j] += val;
          }
        int minval = triangle[len-][];
        for(int i =  ; i< triangle[len-].size() ; i++){
            if(minval > triangle[len-][i] ) minval = triangle[len-][i];
        }
        return minval;
    }
};
reference :http://yucoding.blogspot.com/2013/04/leetcode-question-112-triangle.html
LeetCode_Triangle的更多相关文章
随机推荐
- 在O(1) 时间删除链表节点
			struct Node { int val; Node * next; }; void deleteNode(Node ** head, Node * target) { assert(head != ... 
- 如何将Icon转成Bitmap(对ICON的内部格式讲的比较清楚)
			最近工作中有个需求是将Icon转成带Alpha通道的Bitmap, 虽然网上有不少这方面的文章,但很多都是错的, 这里记录下,或许对后来人有用. 要实现这个功能,我们首先需要理解Icon的格式,我 ... 
- redis 学习笔记一
			找了半天,发觉还是redis的源码看起来比较舒服.所以决定今年把redis的源码读一遍顺便做个读书笔记.好好记录下.话说现在越来不越不愿意用脑袋来记录东西,喜欢靠note来记.话说这样不爱用脑会不会过 ... 
- MyEclipse第一个Servlet程序 --解决Win7系统下MyEclipse与Tomcat连接问题
			前言 本文旨在帮助学习java web开发的人员,熟悉环境,在Win7系统下运行自己的第一个Servlet程序,因为有时候配置不当或系统原因可能会运行不成功,这给初学者带来了一定烦恼,我也是为此烦恼过 ... 
- Hibernate的几种查询方式-HQL,QBC,QBE,离线查询,复合查询,分页查询
			HQL查询方式 这一种我最常用,也是最喜欢用的,因为它写起来灵活直观,而且与所熟悉的SQL的语法差不太多.条件查询.分页查询.连接查询.嵌套查询,写起来与SQL语法基本一致,唯一不同的就是把表名换成了 ... 
- hdu 5402 Travelling Salesman Problem(大模拟)
			Problem Description Teacher Mai ,) to the bottom right corner (n,m). He can choose one direction and ... 
- HBase二级索引的设计(案例讲解)
			摘要 最近做的一个项目涉及到了多条件的组合查询,数据存储用的是HBase,恰恰HBase对于这种场景的查询特别不给力,一般HBase的查询都是通过RowKey(要把多条件组合查询的字段都拼接在RowK ... 
- Javascript:字符串分割split()妙用
			概述: split() 方法将字符串分割为字符串数组,并返回此数组 语法格式: stringObject.split(separator,limit) 参数说明: 注意:如果把空字符串 (" ... 
- 关于C#中的弱引用
			本文前部分来自:http://www.cnblogs.com/mokey/archive/2011/11/24/2261605.html 分割线后为作者补充部分. 一:什么是弱引用 了解弱引用之前,先 ... 
- mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法
			权限问题,授权 给 root 全部sql 权限 mysql> grant all privileges on *.* to root@"%" identified by & ... 
