三角矩阵
三角形
[[20],[30,40],[60,50,70],[40,10,80,30]]
import java.util.*;
public class Solution {
public int minimumTotal(ArrayList<ArrayList<Integer>> triangle) {
if(triangle.isEmpty())
return 0;
int row = triangle.size();
int col = triangle.get(0).size();
for(int i = 1;i<row;++i){
for(int j = 0;j<=i;++j){
int value = 0;
if(j == 0){
value = triangle.get(i-1).get(0) + triangle.get(i).get(0);
}else if(j == i)
value = triangle.get(i-1).get(i-1) + triangle.get(i).get(i);
else{
value = Math.min(triangle.get(i-1).get(j-1),triangle.get(i-1).get(j)) + triangle.get(i).get(j);
}
triangle.get(i).set(j,value);
}
}
//选出最后一行的最小值
int min = triangle.get(row-1).get(0);
for(int i = 0;i<row;i++){
min = Math.min(min,triangle.get(row-1).get(i));
}
return min;
}
}
import java.util.*;
public class Solution {
public int minimumTotal(ArrayList<ArrayList<Integer>> triangle) {
if(triangle.isEmpty())
return 0;
int row = triangle.size();
int col = triangle.get(0).size();
for(int i = row-2;i>=0;--i){
for(int j = 0;j<=i;++j){
int value = Math.min(triangle.get(i+1).get(j),triangle.get(i+1).get(j+1))+triangle.get(i).get(j);
triangle.get(i).set(j,value);
}
}
return triangle.get(0).get(0);
}
}
动规一点也不难!!!?