如果我有一个范围为[[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"

09-07 00:27