Я пытаюсь найти обратное пересечение, чтобы увидеть, могут ли две команды играть друг с другом, но с трудом выяснять точный код, чтобы сделать это.Вычислить пересечение/перехват между двумя списками, которые содержат диапазоны
Класс, представляющий диапазоны ниже, будет содержать два свойства, время начала и время окончания, которое может быть датой или временем. Каждая команда может иметь список из них. Срок службы недвижимости снижается до минуты, так что действует 14:21.
Команда 1 не может играть между этими двумя перечнями, поэтому они могут играть только с 10:00 AM до 5:00. Однако мы сохраняем исключение.
Команда 2 может сыграть 8:00 AN-12: 00 PM.
Значение Команда 1 и команда 2 могут играть между 10-12. Есть ли хороший способ рассчитать это в коде?
Команда 1
List<Restriction>
Restriction
StartTime: 8:00 AM
EndTime: 10:00 AM
Restriction
StartTime: 5:00 PM
EndTime: 9:00 PM
Команда 2
List<Restriction>
Restriction
StartTime: 12:00 PM
EndTime: 9:00 PM
К сожалению, я запутался с временем записи. – ziya
Просто печатайте здесь громко, но я думаю, что вы можете превратить все часы в день в бит в массиве байтов, где игровые часы равны 1, а затем выполняйте операции И между командами. То, что дрожит, было бы временем, когда они могли бы играть друг с другом. – Crowcoder
, если вы конвертируете свое время в то, когда они могут играть (даже временно), а затем конвертировать его в коллекцию доступных часов, она становится пересечением вместо обратного пересечения. –