Алгоритм аналогичен резьбе по шву
Каждая ячейка содержит гвоздь, который не дает мячу опускаться вертикально; поэтому, когда мяч достигает ячейки, следующей по наклонной плоскости будет ячейка в строке ниже, но в соседнем столбце (первая справа или первая слева).
где я не прав?
// To find max val in first row
double res = -1.0;
for (int i = 0; i < colonna; i++) {
res = Math.max(res, matrice[0][i]);
}
//Valore piu grande della prima riga.
System.out.println("Il valore piu' grande della prima riga e' : " + res);
for (int i = 1; i < riga; i++){
res = -1.0;
for (int j = 0; j < colonna; j++){
// When all paths are possible
if (j > 0 && j < colonna - 1) {
matrice[i][j] += Math.max(matrice[i - 1][j], Math.max(matrice[i - 1][j - 1], matrice[i - 1][j + 1])); [enter image description here][1]
// When diagonal right is not possible
}else if (j > 0) {
double n = matrice[i][j] += Math.max(matrice[i - 1][j], matrice[i - 1][j - 1]);
// When diagonal left is not possible
}else if (j < colonna - 1) {
matrice[i][j] += Math.max(matrice[i - 1][j], matrice[i - 1][j + 1]);
}
// Store max path sum
res = Math.max(matrice[i][j], res);
}
System.out.println(res);
}