Сортировка круговых / периодических интервалов - PullRequest
0 голосов
/ 07 мая 2018

Мне нужно найти максимальное количество пересечений интервалов, т.е. для [1,6], [2,5], [5,10], [12,17] максимальное количество пересечений равно 5 3.

Теперь это легко сделать, просто пометив числа как начало / конец интервала и отсортировав их (в случае начальных чисел в пользу связи), затем пересеките отсортированный массив и отследите количество начала и конца и наибольшую разницу между этими двумя это максимум.

В этом примере массив будет (1 бег, 2 бека, 5 бег, 5 концов, 6 концов, 10 концов, 12 концов, 17 концов)

И в 5 есть 3 начинается и 0 заканчивается.

Теперь моя проблема заключается в том, что мои интервалы являются круговыми / периодическими, например, если интервалы содержатся в [0,1], то 1 равно 0 (как если бы я прошел полный круг и вернулся в ту же точку), интервал [0.7 0,3] можно представить как объединение [0,7,1] и [0,0,3], поэтому оно отличается от [0,3,0,7].

Подход неудачен, так как, например, первое число может быть конечным числом.

1 Ответ

0 голосов
/ 07 мая 2018

Вы можете посчитать количество таких специальных интервалов (то есть тех, которые имеют начальное значение, превышающее их конечное значение), и пусть это число будет вашим начальным значением для числа начал (вместо нуля).

Теперь вы можете обрабатывать специальные интервалы так же, как и любые другие в вашем алгоритме, и находить правильный ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...