Ich habe ein 2d Array (eine Matrix) und ich muss die maximale Summe finden, die gesammelt werden kann, indem ich an irgendeiner Position anfange und nach rechts oder unten links gehe, bis ich ein Ende erreiche. Ich muss eine iterative Lösung geben.Max Summe in einem 2d Array Java
Das ist mein Code
static int maxValue(double[][] field, int posR, int posC) {
int r = field.length;
int c = field[0].length;
int sum = 0;
double[][] temp = new double[r][c];
for (int i = posR; i < r; i++) {
for (int j = posC; j < c; j++) {
if (i == posR && j == posC) {
temp[i][j] = field[posR][posC];
posR++; posC++;
} else if (i == field.length-1) {
temp[i][j] = field[i][j];
break;
} else if (j == field.length-1) {
temp[i][j] = field[i][j];
break;
} else {
temp[i][j] = Math.max(field[i+1][j-1], field[i+1][j+1]);
}
}
}
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
sum += temp[i][j];
}
}
return sum;
}
}
debuggen und sehen, wo bekommen Sie Problem – Sanjeev
@ Sanjeev, es funktioniert, aber das Problem ist, dass es nicht die richtige Antwort nicht geben. – q212
Was ist die Idee hinter dem Code? Sie scheinen die Summe von einem Bereich anstatt von einer Linie zu nehmen. – maraca