1
350
范围重叠意味着什么?这意味着有一些数字c在这两个范围内,即。
和
现在,如果允许我们假设范围是格式良好的(这样x1<=x2和y1<=y2),那么就足以测试
|
2
118
给定两个范围[x1,x2],[y1,y2]
|
3
43
这很容易扭曲正常的人脑,所以我发现了一种更容易理解的视觉方法:
Le解释如果两个范围是“too fat” to fit in a slot that is exactly the sum of the width of both,then they overlap.
对于范围
|
4
34
很好的回答来自 Simon 但对我来说,考虑反例比较容易。 两个范围何时不重叠?当其中一个开始于另一个结束之后,它们不会重叠:
现在,当它们重叠时很容易表达:
|
5
17
|
6
10
我想问题是关于最快的代码,而不是最短的代码。最快的版本必须避免分支,因此我们可以编写如下内容: 对于简单情况:
或者,对于这种情况:
|
7
6
|
8
2
如果你在处理,给两个范围
然后您可以使用此项检查:
它们重叠<=>
只有在哪里 四 涉及操作:
|
9
0
您已经拥有了最有效的表示法——除非您确定x1<x2等,然后使用其他人提供的解决方案,否则需要检查的是最简单的最小值。 您可能应该注意到,有些编译器实际上会为您优化这一点——只要这4个表达式中的任何一个返回true,就会立即返回。如果其中一个返回true,那么最终结果也将返回true,因此可以跳过其他检查。 |
10
0
如果有人正在寻找一个计算实际重叠的一行程序:
如果您需要更少的操作,但需要更多的变量:
|
11
0
在思考
逆方法
如何
使两个范围不重叠
?鉴于
因此,使两个范围重叠的条件是:
|
12
-7
这是我的版本:
除非您在数十亿个宽间隔整数上运行一些高性能的范围检查程序,否则我们的版本应该执行类似的操作。我的观点是,这是微观优化。 |
Thinkpad · Excel引用基于字符串的范围 2 年前 |
tanmay · 如何检查列表中的元素是否具有重叠的数值 2 年前 |
Spd · vba中的范围变量不接受基于指针的值 6 年前 |
Mahhdy · VBA-使用RefEdit复制工作簿之间的范围 6 年前 |
AlisaM · 是否可以使用不带数值的范围滑块,而是显示内容? 6 年前 |
Jan Wytze · postgresql 10日期范围限制 6 年前 |