Изменения

Перейти к: навигация, поиск

Поиск в матрице

382 байта добавлено, 17:18, 23 января 2016
Решение за O(n + m)
=== Доказательство корректности ===
Докажем, что каждый ход в соседнюю ячейку отсекает только те столбцы или строки, которые точно не содержат искомый элемент. Назовем ход корректным, если он отсекает только те строки или колонки, в которых точно нет искомого элемента. Пусть первый ход (в правую верхнюю ячейку) корректный (он не отсек ни одной строки или столбца). Пусть предыдущий ход был корректным. Докажем, что следующий ход, выполненный по правилам, будет корректным: если Если текущий элемент меньше необходимогоискомого,то очевидно, что все ячейки левее и выше меньше, чем искомый. Значит, их можно отсечь. Если текущий элемент больше искомого, то очевидно, что все ячейки правее и ниже больше, чем искомый. Значит, их тоже можно отсечь.
=== Код ===
54
правки

Навигация