两个整数区间是否存在重叠交集
思路:两个区间,两者的最小值中的最大值 <= 两者最大值的最小值时,就存在重叠交集。
小案例:
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
本站文章主要用于个人学习记录,可能对您有所帮助,仅供参考!

