Я пытаюсь решить Максимальная сумма песочных часов в матрице :
При заданной двумерной матрице задача состоит в том, чтобы найти максимальную сумму песочных часов.
Часовой стакан состоит из 7 ячеек в следующем виде.
A B C
D
E F G
Что-то не так с моей реализацией, и я получаю странные ответы.Я должен получить 19, но он возвращает 36.
Вот мой код:
static int hourglassSums(int[][] arr)
{
return IntStream.range(0, 4).map(x -> {
return IntStream.range(0, 4).map(y ->
arr[y][x] + arr[y][x + 1] + arr[y][x + 2]
+ arr[y + 1][x + 1]
+ arr[y + 2][x] + arr[y + 2][x + 1] + arr[y + 2][x + 2]
).sum();
}).max().getAsInt();
}
public static void main(String[] args)
{
System.out.println("Max sum :: " + hourglassSums(new int[][] {
{1, 1, 1, 0, 0, 0},
{0, 1, 0, 0, 0, 0},
{1, 1, 1, 0, 0, 0},
{0, 0, 2, 4, 4, 0},
{0, 0, 0, 2, 0, 0},
{0, 0, 1, 2, 4, 0}
}));
}