三角形的最小路径和
public static void main(String[] args) {
int[][]arr={{7},{3,8},{5,1,0},{2,7,4,4},{4,5,2,6,5}};
System.out.println(dp46(arr));
}
public static int dp46(int[][]arr){int q=0;//从下往上dp 定义一个q 随着i 变化 j的数组下标不会越界
for (int i = arr.length-2; i >=0; i--) {q++; // i 定义为从倒数第二行开始
for (int j = 0; j <arr.length-q; j++) {//j从0到最大
arr[i][j]=Math.min(arr[i+1][j], arr[i+1][j+1])+arr[i][j]; //自己本身加上下一行的两个比较的最小值
}
}return arr[0][0];//返回最上面想加的路径和
}