0
点赞
收藏
分享

微信扫一扫

动态规划应用——第三题三角矩阵

mafa1993 2022-04-21 阅读 66

三角矩阵

三角形

[[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);
    }
}

动规一点也不难!!!?

举报

相关推荐

0 条评论