Я пытаюсь найти решение проблемы, которая сводится к интервалам.
по поиску в Google, я знаю, что обычно это решается с помощью жадного подхода, но моей собственной первой идеей было использование поиска в ширину. Я начинаю, предполагая, что объединение интервалов является интервалом и все интервалы закрыты. Проблема:
При заданных k закрытых интервалах найти подмножество с таким количеством элементов, как
возможно так, что каждая точка в интервале из исходной коллекции
находится в интервале в найденном подмножестве.
Моя идея - работать в графе, где интервалы - это вершины и две вершины.
сформировать ненаправленное ребро, если соответствующие интервалы перекрываются. В особом случае
где объединение является интервалом, я могу выбрать узлы, содержащие конечную и начальную точку
имея максимальную длину, а затем путь между ними минимальной длины является оптимальным решением.
Моя проблема заключается в следующем: как эффективно построить график интервалов, чтобы избежать просмотра каждой пары интервалов. Я пробовал разные способы сортировки интервалов, но все же, похоже, не ушел от квадратичного времени.