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

Leetcode-Triangle

时间:2014-11-08 09:15:14      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   ar   sp   for   div   on   

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).

Solution:

public class Solution {
    public int minimumTotal(List<List<Integer>> triangle) {
        if (triangle.size()==0)
            return 0;
        
        if (triangle.size()==1){
            List<Integer> temp = triangle.get(0);
            return temp.get(0);
        }
        
        List<Integer> pre = new ArrayList<Integer>();
        List<Integer> cur = new ArrayList<Integer>();
        
        cur.add(triangle.get(0).get(0));
        for (int i=1;i<triangle.size();i++){
            pre = cur;
            cur = new ArrayList<Integer>();
            List<Integer> curTri = triangle.get(i);
            //j==0
            cur.add(curTri.get(0)+pre.get(0));
            //j==1 to (size()-2)
            for (int j=1;j<curTri.size()-1;j++)
                if (pre.get(j-1)<pre.get(j))
                    cur.add(curTri.get(j)+pre.get(j-1));
                else
                    cur.add(curTri.get(j)+pre.get(j));
            //j==size()-1
            int last = curTri.size()-1;
            cur.add(curTri.get(last)+pre.get(last-1));
        }
        
        int min = Integer.MAX_VALUE;
        for (int i=0;i<cur.size();i++)
            if (cur.get(i)<min)
                min = cur.get(i);
                
        return min;
    }
}

This is a DP problem. At each point, the min path = min(min path to its left adjacent in higher level, min path to its right adjacent in higher level)+its value.

Just be careful when addressing boundary points.

Leetcode-Triangle

标签:style   blog   io   color   ar   sp   for   div   on   

原文地址:http://www.cnblogs.com/lishiblog/p/4082710.html

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