我正在嘗試查找反向交集,以查看兩個團隊是否可以彼此玩,但很難搞清楚準確的代碼。計算包含範圍的兩個列表之間的交集/截距
對下列範圍進行重新認定的類將包含兩個屬性,一個開始時間和結束時間,可以是日期時間或時間跨度。每個團隊都可以有這些列表。時間跨度屬性會下降到下午2點21分有效。
團隊1無法在列出的這兩個時間之間進行比賽,因此他們只能在上午10:00至下午5:00進行比賽。儘管如此我們存儲排除。
第二隊可以在下午8:00到下午12:00進行比賽。
意義隊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 2014-09-27 01:16:39
只需在這裏大聲輸入,但我想你可以將當天的所有時間都轉換爲可播放時間爲1的字節數組中的位,然後在團隊之間進行AND操作。搖出什麼是他們可以相互對戰的時刻。 – Crowcoder 2014-09-27 01:36:46
如果您將時間轉換爲可以播放(甚至是暫時)的時間,然後將其轉換爲可用時間集合,則它將成爲交叉點而不是反向交叉點。 – 2014-09-27 01:52:42