两个整数区间是否存在重叠交集

作者: imule 分类: Java知识 发布时间: 2023-08-16 10:09
思路:两个区间,两者的最小值中的最大值 <= 两者最大值的最小值时,就存在重叠交集。

小案例:

public static void main(String[] args) {
    int sid = 1;
    int eid = 5;
    isOverlap(sid, eid, 0, 1);
    isOverlap(sid, eid, 0, 2);
    isOverlap(sid, eid, 1, 4);
    isOverlap(sid, eid, 1, 5);
    isOverlap(sid, eid, 2, 3);
    isOverlap(sid, eid, 2, 5);
    isOverlap(sid, eid, 2, 6);
    isOverlap(sid, eid, 6, 10);
}

/**
 * 是否重叠交集,重叠相交范围
 * @title isOverlap
 * @param sid 起始位置
 * @param eid 结束位置
 * @param ocsSid 比对目标起始位置
 * @param ocsEid 比对目标结束位置
 * @updateTime 2023/8/16 9:49
 */
private static void isOverlap(int sid, int eid, int ocsSid, int ocsEid) {
    boolean flag = Math.max(sid, ocsSid) <= Math.min(eid, ocsEid);
    System.out.print("是否重叠交集:" + flag);
    if(flag) {
        System.out.println(",重叠交集范围:" + Math.max(sid, ocsSid) + "-" + Math.min(eid, ocsEid));
    }
}

执行结果:

是否重叠相交:true,重叠相交范围:1-1
是否重叠相交:true,重叠相交范围:1-2
是否重叠相交:true,重叠相交范围:1-4
是否重叠相交:true,重叠相交范围:1-5
是否重叠相交:true,重叠相交范围:2-3
是否重叠相交:true,重叠相交范围:2-5
是否重叠相交:true,重叠相交范围:2-5
是否重叠相交:false
寄语

    有人在奔跑,有人在睡觉,有人在感恩,有人在抱怨,有目标的睡不着,没目标的睡不醒,努力才是人生应有的态度,睁开眼就是新的开始。

本站文章主要用于个人学习记录,可能对您有所帮助,仅供参考!

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!