一、三角形最短路径和
- 三角形最小路径和,找出自顶向下的路径和
每一步只能移动到下一行相邻的节点上,相邻的节点在这里指的是下标与上一层下标相同或等于上一层结点下标+1的两个节点
二、代码实现
public class SanMinPath {
public static int sanminpath(List<List<Integer>> sanjiaoxing){
int n = sanjiaoxing.size();
int[][] dp = new int[n][n];
dp[0][0] = sanjiaoxing.get(0).get(0);
for (int i = 1; i < n; i++){
dp[i][0] = dp[i-1][0] + sanjiaoxing.get(i).get(0);
for (int j = 1; j < i; j++){
dp[i][j] = Math.min(dp[i-1][j],dp[i-1][j-1]) + sanjiaoxing.get(i).get(j);
}
dp[i][i] = dp[i-1][i-1] + sanjiaoxing.get(i).get(i);
}
int minvalue = dp[n-1][0];
for (int i = 0; i < n; i++){
minvalue = Math.min(dp[n-1][i],minvalue);
}
return minvalue;
}
}