[LeetCode] Triangle

来源:互联网 发布:好听的网络公司名称 编辑:程序博客网 时间:2024/06/14 19:05

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

没什么可说的,无脑编码即可:

public class Solution {    public int minimumTotal(List<List<Integer>> triangle) {    if(triangle.size()==0) return 0;        List<Integer> level=new ArrayList<Integer>();        level.add(triangle.get(0).get(0));        for(int i=1;i<triangle.size();i++){        List<Integer> newLevel=new ArrayList<Integer>();        List<Integer> temp=triangle.get(i);        for(int j=0;j<temp.size();j++){        if(j==0) newLevel.add(level.get(0)+temp.get(0));        else if(j==temp.size()-1) newLevel.add(level.get(j-1)+temp.get(j));        else{        newLevel.add(Math.min(level.get(j),level.get(j-1))+temp.get(j));        }        }        level=newLevel;        }        int re=Integer.MAX_VALUE;        for(int i=0;i<level.size();i++){        re=Math.min(re, level.get(i));        }        return re;    }}


原创粉丝点击