Самый эффективный способ найти перекрывающиеся диапазоны из n интервалов в Java [закрыто] ⇐ JAVA
Самый эффективный способ найти перекрывающиеся диапазоны из n интервалов в Java [закрыто]
Существует начальный массив start[1,2,3] и конечный массив end[10,8,4]. Я хочу вернуть максимальное количество точек перекрывающихся диапазонов этих интервалов.
Например: Интервал 1:[1,10], Интервал 2:[2,8], Интервал 3:[3,4]. Интервалов может быть n. Ответ — 2 (3-й и 4-й пункты), поскольку [3,4] — это диапазон, в котором перекрываются n интервалов. Если таких интервалов несколько, выберите самый длинный (максимальный).
ps: без использования дерева интервалов
Я проверил похожие вопросы, но не смог найти решения для таких интервалов. Может кто-нибудь мне помочь, пожалуйста?
Все, что я могу думать, это то, что я могу сортировать по времени начала и проверять bool перекрытие = a.start < b.end && b.start < a.end;
Однако найти все перекрывающиеся точки не получится. Самый близкий алгоритм, который я могу найти, это этот.
И из StackOverflow это.
Существует начальный массив start[1,2,3] и конечный массив end[10,8,4]. Я хочу вернуть максимальное количество точек перекрывающихся диапазонов этих интервалов.
Например: Интервал 1:[1,10], Интервал 2:[2,8], Интервал 3:[3,4]. Интервалов может быть n. Ответ — 2 (3-й и 4-й пункты), поскольку [3,4] — это диапазон, в котором перекрываются n интервалов. Если таких интервалов несколько, выберите самый длинный (максимальный).
ps: без использования дерева интервалов
Я проверил похожие вопросы, но не смог найти решения для таких интервалов. Может кто-нибудь мне помочь, пожалуйста?
Все, что я могу думать, это то, что я могу сортировать по времени начала и проверять bool перекрытие = a.start < b.end && b.start < a.end;
Однако найти все перекрывающиеся точки не получится. Самый близкий алгоритм, который я могу найти, это этот.
И из StackOverflow это.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение