Максимальная сумма прямоугольника не больше K
Матрицы
Экстремальная
Дана числовая матрица matrix и число k. Верните максимальную сумму элементов какого-либо прямоугольного подмассива (несколько подряд идущих строк и подряд идущих столбцов), не превышающую k.
Гарантируется, что хотя бы один прямоугольник с суммой ≤ k существует.
Подсказка: переберите пару (верхняя, нижняя строка), сожмите матрицу между ними в одномерный массив столбцовых сумм - остаётся классическая подзадача "наибольшая сумма подотрезка ≤ k" через префиксы и бинарный поиск по отсортированным префиксам.
Сигнатура функции
max_rectangle_sum_at_most_k(matrix: list[list[int]], k: int) -> int
Примеры
| Вход | Ожидаемый результат |
| [[[1, 0, 1], [0, -2, 3]], 2] | 2 |
| [[[2, 2, -1]], 3] | 3 |
1решили
1пытались
100%успешность
Войдите, чтобы решить →