Войти Регистрация
Алгоритмы

174. Найти сумму в отсортированной таблице тарифов

Средняя

Дана таблица grid из m строк по n чисел. Числа в каждой строке строго возрастают, и первое число строки больше последнего числа предыдущей.

Верните [строка, столбец] клетки со значением target или [-1, -1], если его нет. Нужно O(log(m·n)).

В работе: Сетка порогов кешбэка или комиссий: строки — уровни подписки, внутри строки — пороги по возрастанию.

Пример 1

Ввод
grid = [[1, 2, 3], [10, 20, 30], [100, 200, 300]]
target = 20
Вывод
[1, 1]

Таблица из задачи на собеседовании.

Пример 2

Ввод
grid = [[1, 2, 3], [10, 20, 30], [100, 200, 300]]
target = 25
Вывод
[-1, -1]

25 нет.

Ограничения

  • 1 ≤ m, n ≤ 1000
  • |grid[i][j]|, |target| ≤ 10⁹
  • Лимит — 1 с на тест.
Как вызывается ваш код Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула. print() и console.log() уходят в консоль.
def search_table(grid, target):
Бинарный поискМатрицацельlogn

Источник: Т-Банк, лайвкодинг, репозиторий кандидата на GitHub, 2023. Условие пересказано своими словами.