校驗區間(閉區間)是否存在重疊所用到得演算法參考:
無言火: 演算法–驗證時間段不交叉/不重複的方法
核心得思路在於:有序區間下,下一區間得開始節點必須大於上一區間得結束節點。
解決方案:首先根據區間開始節點排序整理好,然後迴圈判斷下一區間得開始節點是否大於上一區間的結束節點,如果小於等於則存在重疊。
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 ...