判断区间重叠是否的方法,简单有效

前言 :两个数值的区间,可以放在数轴上看,其实就是4个点,只要找出最小点就很好判断了,
找出有最小点的区间,然后让该区间的最大值和另一个区间的最小点比较,如果大于该比较区间的最小点,那么说明有两种情况,

  • 一是前者的最大值掉落在后者区间内
  • 二是前者前者包含后者,这都属于有重叠的数值,返回true。

代码如下:

function isOverlap(a,b){
    //判断最小值
    if(a.minValue<b.minValue){
        //a的开始范围是最小
        if (a.maxValue>=b.minValue){
            return true;
        }else{
            return false
        }
    }else if(a.minValue==b.minValue){
        return true;
    }else {
        //b的开始范围是最小
        if (b.maxValue>=a.minValue){
            return true;
        }else{
            return false;
        }
    }
}

这是正向区间的情况,如[0,20],最大值肯定大于最小值,但是如果是反向区间,如[0,-20],就需要另外判断了。

原文地址:https://www.cnblogs.com/melonPada/p/15248596.html