在一次業務開發中,發現有一種資料,每天都會有乙個值,不論是否是節假日。由於這個值的變化頻率比較低,導致會有連續的n個日期,值是相同的。於是,就想將這些值合併。比如原來的結構是二元組data(value , date),合併成三元組data(value , begindate , enddate)。
合併完原始資料後,生成三元組data1,還要和已經存在的三元組data2合併。於是就產生乙個需求,如何判斷日期區間date1[begindate , enddate]和date2[begindate , enddate]是重疊的。
假設存在兩個區間a[a1 , a2] , b[b1 , b2],如何判斷區間a和b存在重疊,重疊的長度多少。
1、begin = max(a1 , b1) ;
2、end = min(a2 , b2) ;
3、len = end - begin
如果len >= 0,那麼區間ab重疊,重疊部分為len;否則不重疊。
演算法 判斷兩個區間是否重疊
判斷兩個區間是否重疊 假設區間表示為 start,end 先存在兩個區間a,b.兩個區間的關係有兩種 重疊與不重疊 重疊的情況有4種,兩種相交,兩種包含 很容易想到,此處不示意 不重疊有兩種情況 a在b前面,a在b後面 因此很容易得到判斷區間重疊的方法 1 正向判斷,列出四種重疊的情況,滿足其一,則...
演算法練習 重疊區間個數
一 題目描述 給定多個可能重疊的區間,找出重疊區間的個數。舉例如下 輸入 1,5 10 15 5 10 20 30 輸出 2 說明 題意應該是找出重疊區間中區間的最大個數,當沒有區間重疊時,重疊個數最大為1 比如 輸入為 1,5 10 15 則輸出為1 輸入為 1,2 2,3 3,4 4,5 則輸出...
演算法導論 區間樹上的重疊區間查詢演算法
一 演算法設計與分析 1 資料結構設計 區間 struct interval 節點 struct node int key int color int max interval int node parent node left node right 樹 struct tree node root ...