给定两个包含范围 [x1:x2] 和 [y1:y2],其中x1 ≤ x2
and y1 ≤ y2
,测试两个范围是否重叠的最有效方法是什么?
一个简单的实现如下:
bool testOverlap(int x1, int x2, int y1, int y2) {
return (x1 >= y1 && x1 <= y2) ||
(x2 >= y1 && x2 <= y2) ||
(y1 >= x1 && y1 <= x2) ||
(y2 >= x1 && y2 <= x2);
}
但我希望有更有效的方法来计算它。
就最少的操作而言,哪种方法最有效?
范围重叠意味着什么?这意味着存在一些数字 C 在两个范围内,即
x1 <= C <= x2
and
y1 <= C <= y2
为了避免混淆,考虑范围是:
[x1:x2] 和 [y1:y2]
现在,如果我们允许假设范围格式良好(使得 x1
x1 <= y2 && y1 <= x2
OR
(开始 = 开始)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)