Java leetcode问题数组与ArrayList 120.0
我试图解决问题120。三角形,它如下: 给定一个三角形,求从上到下的最小路径和。每一步您都可以移动到下一行的相邻数字 以下是我的解决方案:Java leetcode问题数组与ArrayList 120.0,java,arrays,performance,recursion,arraylist,Java,Arrays,Performance,Recursion,Arraylist,我试图解决问题120。三角形,它如下: 给定一个三角形,求从上到下的最小路径和。每一步您都可以移动到下一行的相邻数字 以下是我的解决方案: 类解决方案{ 公共整数最小总计(列表三角形){ List latestSum=new ArrayList(); 对于(int i=0;i class Solution { public int minimumTotal(List<List<Integer>> tri) { if (tri.size() == 0) {
类解决方案{
公共整数最小总计(列表三角形){
List latestSum=new ArrayList();
对于(int i=0;i
class Solution {
public int minimumTotal(List<List<Integer>> tri) {
if (tri.size() == 0) {
return 0;
}
if (tri.size() == 1) {
return tri.get(0).get(0);
}
Integer[] dp = new Integer[tri.size()];
return min(tri, 0, 0, dp);
}
public int min(List<List<Integer>> tri, int row, int currIndex, Integer[] dp) {
if (row == tri.size() - 1) {
return tri.get(row).get(currIndex);
}
int minLeft;
if (dp[row + 1] != null) {
minLeft = dp[row + 1];
} else {
minLeft = min(tri, row + 1, currIndex, dp);
}
int minRight = min(tri, row + 1, currIndex + 1, dp);
dp[row + 1] = minRight;
return tri.get(row).get(currIndex) + Math.min(minLeft, minRight);
}
}