Я проходил через Skiena отлично "Руководство по разработке алгоритмов" и получил зависание на одном из упражнений.
Вопрос: "Учитывая строку поиска из трех слов, найдите самый маленький фрагмент документа, который содержит все три слова поиска, т.е. Фрагмент с наименьшим количеством слов в нем. Вам предоставляются позиции индекса, в которых эти слова встречаются в строке поиска, например word1: (1, 4, 5), word2: (4, 9, 10) и word3: (5, 6, 15). Каждый из списков находится в отсортированном порядке, как указано выше."
Все, что я придумал, это O (n ^ 2)... Этот вопрос находится в главе "Сортировка и поиск", поэтому я предполагаю, что есть простой и умный способ сделать это. Я сейчас что-то делаю с графиками, но это похоже на перебор.
Идеи? Благодаря