Это не вопрос интервью как таковой, поскольку я натолкнулся на это в своем проекте, но я решил, что это может быть достойный вопрос.
У вас есть N пар интервалов, скажем целых чисел. Вам необходимо указать все интервалы, которые перекрываются друг с другом в O (N) времени. Например, если у вас есть
{1, 3} {12, 14} {2, 4} {13, 15} {5, 10}
ответ {1, 3}, {12, 14}, {2, 4}, {13, 15}. Обратите внимание, что вам не нужно группировать их, поэтому результат может быть в любом порядке, как в примере.
Я просто набрал время O (N), потому что алгоритм KMP берет O (N) для поиска строк.: D
Лучшее, что я придумал, и то, что я сейчас использую в проекте, - O (N ^ 2). Да, грубая сила довольно грустная, но никто не жалуется, поэтому я не буду реорганизовать ее.: P Тем не менее, мне было любопытно, есть ли у более умного решения более элегантное решение.