js判斷兩個區間是否存在交集

2022-05-18 08:12:21 字數 1460 閱讀 1887

思路:兩個區間,兩者的最小值中的最大值 <= 兩者最大值的最小值時 就存在交集

let arr1 = [1,4];

let arr2 = [2,5];

let arr3 = [5,2];

let arr4 = [4,5];

let arr5 = [9,5];

let arr6 = [1,4];

let arr7 = [5,6];

let arr8 = [5,5];

//判斷兩個區間是否相交

function

isintersect(arr1,arr2)

//驗證

console.log(isintersect(arr1,arr2));//

true

console.log(isintersect(arr1,arr3));//

true

console.log(isintersect(arr1,arr4));//

true

console.log(isintersect(arr1,arr5));//

false

console.log(isintersect(arr1,arr6));//

true

console.log(isintersect(arr1,arr7));//

false

console.log(isintersect(arr1,arr8));//

false

//補充

console.log(math.max(1,2,3,3,3));//

3console.log(math.min(1,1,2,3,3,3));//

1

另一些有意思的小演算法

//

用區間集合篩選出互斥的部分

let allarr = [0,1,2,3,4,5,6,7,8,9

]; let a = [[1,3],[6,9

]]; a.foreach(item =>);

console.log(allarr);

//判斷兩個去交是否有交集

function isintersect(arr1,arr2)

//向區間集合新增新的區間時,判斷區間集合中是否存在與新區間有交集的,如果存在,去除區間集合中有交集的區間,再加入新區間

let arr = [[2,5],[4,5],[6,8

]]; let arr2 = [3,5

];

for(let i = arr.length -1; i >= 0;i--)

}arr.push(arr2)

console.log(arr);

跳題邏輯核心思路:

由這樣的乙個二維陣列[[1,3],[4,6]]得到[0,1,3,4,6,7]的乙個陣列;

推導過程,前推,後退,形成閉環。

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

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

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

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

js 判斷兩個變數是否相等

判斷兩個變數是否相等是程式設計中非常重要的運算。在處理原始值時,這種運算相當簡單,但涉及物件,任務就稍有點複雜。ecmascript 提供了兩套等性運算子 等號和非等號用於處理原始值,全等號和非全等號用於處理物件。在 ecmascript 中,等號由雙等號 表示,當且僅當兩個運算數相等時,它返回 t...