Дана таблица 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):
Источник: Т-Банк, лайвкодинг, репозиторий кандидата на GitHub, 2023. Условие пересказано своими словами.
Давали на собеседовании?
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.