您的位置:首页 > 其它

LeetCode力扣之120. Triangle

2018-03-25 20:19 363 查看
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.
package leetCode;

import java.util.List;

/**
* Created by lxw, liwei4939@126.com on 2018/3/25.
*/
public class L120_Triangle {

public int minimumTotal(List<List<Integer>> triangle){
int size = triangle.size();
if (size == 0){
return 0;
}

if (size == 1){
return triangle.get(0).get(0);
}
int[] s = new int[size];

int k =0;
for (Integer v:triangle.get(size-1)){
s[k++] = v;
}

for (int i = s.length - 2; i >=0; i--){
List<Integer> list = triangle.get(i);
for (int j = 0; j <= i; j++){
s[j] = list.get(j) + Math.min(s[j], s[j+1]);
}
}
return s[0];
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: