三⾓形最⼩路径和:https://leetcode-cn.com/problems/triangle/
思路:自顶向下,将本级的数字加到下一级的相同位置或者左一位,若下一级有两个选择则进行比较,选择和最小的保存到本级,进行循环,二维数组最后一行则为最后的结果,遍历得到最小的路径值输出
class Solution {
public static int minimumTotal(List<List<Integer>> triangle) {
for(int i=0;i<triangle.size()-1;i++){
triangle.get(i+1).set(0,triangle.get(i+1).get(0)+triangle.get(i).get(0));
for(int j=1;j<=i;j++){
triangle.get(i+1).set(j,triangle.get(i+1).get(j)+(triangle.get(i).get(j-1)>triangle.get(i).get(j)?
triangle.get(i).get(j):triangle.get(i).get(j-1)));
}
triangle.get(i+1).set(i+1,triangle.get(i+1).get(i+1)+triangle.get(i).get(i));
}
int m=triangle.get(triangle.size()-1).get(0);
for(int i=0;i<triangle.get(triangle.size()-1).size();i++){
if(m>triangle.get(triangle.size()-1).get(i)){
m=triangle.get(triangle.size()-1).get(i);
}
}
return m;
}
}