【leetcode】120.(Medium)Triangle

解题思路:
DP
时间复杂度:O(n1) n1是二维数组的大小
空间复杂度:O(n2) n2是三角形的层数

提交代码:

class Solution {
    public int minimumTotal(List<List<Integer>> triangle) {
    	for(int row=1;row<triangle.size();row++) {
    		for(int p=0;p<triangle.get(row).size();p++) {
    			if(p==0)
    				triangle.get(row).set(p, triangle.get(row).get(p)+triangle.get(row-1).get(0));
    			else if(p==triangle.get(row).size()-1)
    				triangle.get(row).set(p, triangle.get(row).get(p)+triangle.get(row-1).get(p-1));
    			else {
    			int pre=Math.min(triangle.get(row-1).get(p),triangle.get(row-1).get(p-1));
    			triangle.get(row).set(p, triangle.get(row).get(p)+pre);
    		}
    		}
    	}
    	int min=Integer.MAX_VALUE;
    	for(int i=0;i<triangle.get(triangle.size()-1).size();i++) {
    		if(triangle.get(triangle.size()-1).get(i)<min)	
    			min=triangle.get(triangle.size()-1).get(i);
    	}
    	return min;
    }
}

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/AXIMI/article/details/85453121