如果我有一个范围为[[s1,t1],[s2,t2],...]的数组,其中数组的每个元素对于所有i而言都是从si到ti的范围,并且它们的格式正确,即si
编辑:
要求是检查是否同时存在所有范围的共同重叠。
谢谢
最佳答案
还有一个答案:
按si对范围进行排序
在排序的列表中,计算si
var ranges = [[7, 11], [2, 5], [1, 3], [5, 8]], intersections = 0, i = 0;
ranges.sort(function(a, b) {
return b[0] < a[0];
});
for(i=1; i<ranges.length; i++) {
if(ranges[i][0] < ranges[i-1][1]) {
intersections++;
}
}
console.log('Intersections:', intersections); // Outputs "Intersections: 2"