给定两个包含整数范围[x1:x2]和[y1:y2],其中x1≤x2和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);
}
Run Code Online (Sandbox Code Playgroud)
但我希望有更有效的方法来计算它.
在最少的操作方面,哪种方法最有效.
因此,我试图找出如何获取一系列数字并将值缩小到适合范围.想要这样做的原因是我试图在java swing jpanel中绘制省略号.我希望每个椭圆的高度和宽度在1-30的范围内.我有从我的数据集中找到最小值和最大值的方法,但是直到运行时才会有min和max.是否有捷径可寻?
例如,要生成3到10之间的随机数,我使用: rand(8) + 3
有没有更好的方法来做到这一点(类似的东西rand(3, 10)
)?
是否可以使用范围运算符...
和..<
if语句.Maye是这样的:
let statusCode = 204
if statusCode in 200 ..< 299 {
NSLog("Success")
}
Run Code Online (Sandbox Code Playgroud) 没有这个可以做以下i
吗?
for i in range(some_number):
# do something
Run Code Online (Sandbox Code Playgroud)
如果你只是想做N次,并且不需要迭代器.
我正在使用一种int
类型来存储一个值.根据程序的语义,值总是在很小的范围内变化(0 - 36),并且仅使用int
(不是a char
)因为CPU效率.
似乎可以在如此小的整数范围内执行许多特殊的算术优化.可以将对这些整数的许多函数调用优化为一小组"神奇"操作,并且甚至可以将某些函数优化为表查找.
那么,是否有可能告诉编译器这int
总是在那么小的范围内,并且编译器是否可以进行这些优化?
我在谈论做类似的事情:
for(i=n; i>=1; --i) {
//do something with i
}
Run Code Online (Sandbox Code Playgroud)
我可以想一些在python中这样做的方法(创建一个列表range(1,n+1)
并反转它,使用while
和--i
,...)但是我想知道是否有更优雅的方法来做到这一点.在那儿?
编辑:有人建议我使用xrange()而不是range(),因为range返回一个列表,而xrange返回一个迭代器.但是在Python 3(我碰巧使用)中,range()返回一个迭代器而xrange不存在.
我正在尝试制作一个包含数字的列表1-1000
.显然,写入/读取会很烦人,所以我试图制作一个带有范围的列表.在Python 2中,似乎:
some_list = range(1,1000)
Run Code Online (Sandbox Code Playgroud)
会有用,但在Python 3中,范围类似于xrange
Python 2?
任何人都可以对此提供一些见解吗?
在bash中迭代范围的方法是
for i in {0..10}; do echo $i; done
Run Code Online (Sandbox Code Playgroud)
使用步骤迭代序列的语法是什么?说,我想在上面的例子中得到偶数.
range ×10
python ×3
integer ×2
iteration ×2
ruby ×2
bash ×1
c++ ×1
comparison ×1
enumeration ×1
for-loop ×1
if-statement ×1
list ×1
loops ×1
map ×1
math ×1
max ×1
minimum ×1
optimization ×1
performance ×1
python-3.x ×1
random ×1
scaling ×1
swift ×1