判斷區間重疊是否的方法,簡單有效


前言 :兩個數值的區間,可以放在數軸上看,其實就是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],就需要另外判斷了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM