校驗區間是否存在重疊(Python)

2021-10-11 21:21:58 字數 1047 閱讀 4238

校驗區間(閉區間)是否存在重疊所用到得演算法參考:

無言火: 演算法–驗證時間段不交叉/不重複的方法

核心得思路在於:有序區間下,下一區間得開始節點必須大於上一區間得結束節點。

解決方案:首先根據區間開始節點排序整理好,然後迴圈判斷下一區間得開始節點是否大於上一區間的結束節點,如果小於等於則存在重疊。

python示例如下:

# -*- coding: utf-8 -*-

defcheck_fun

(check_list)

:"""校驗是否重疊"""

iflen

(check_list)

<1:

return

false

iflen

(check_list)==1

:return

true

print

('check_list : '

, check_list)

# 排序

a_list =

sorted

(check_list, key=

lambda l: l[0]

)print

('a_list : '

, a_list)

for i in

range(0

,len

(a_list)-1

):if a_list[i+1]

[0]<= a_list[i][1

]:print

('%s 與 %s 重疊!'%(

str(a_list[i]),

str(a_list[i+1]

)))return

false

# 定義三組樣例資料

a =[50,

150]

b =[1,

100]

c =[

200,

1000

]check_list =

[a,b,c]

res = check_fun(check_list)

js判斷兩個數值區間是否存在重疊或覆蓋

分享乙個比較好的判斷區間是否重疊的方法 栗子 比如學校排課表的課時,判斷同一天是否存在重疊 資料舉例 a課程 開始課時第1節,結束課時第3節,b課程 開始課時第2節,結束課時第4節。思路 比較開始課時陣列的最大值和結束課時陣列的最小值,若小於或等於則重疊,反之不重疊,也就是沒有交集或包含的情況。1 ...

演算法 判斷兩個區間是否重疊

判斷兩個區間是否重疊 假設區間表示為 start,end 先存在兩個區間a,b.兩個區間的關係有兩種 重疊與不重疊 重疊的情況有4種,兩種相交,兩種包含 很容易想到,此處不示意 不重疊有兩種情況 a在b前面,a在b後面 因此很容易得到判斷區間重疊的方法 1 正向判斷,列出四種重疊的情況,滿足其一,則...

ajax實現校驗使用者名稱是否存在

json方式 前端 jquery function else sysadmin deptaction i ist type post data datatype json 如果不寫datatype,data的資料就是字串。設定了後底層會parse一下變成原先的格式 success function ...