【发布时间】:2011-09-03 15:09:28
【问题描述】:
Sought 是一种高效算法,可在区间 [a, b] 中找到唯一整数,该区间在其二进制表示中具有最大数量的尾随零(a 和 b 是大于 0 的整数):
def bruteForce(a: Int, b: Int): Int =
(a to b).maxBy(Integer.numberOfTrailingZeros(_))
def binSplit(a: Int, b: Int): Int = {
require(a > 0 && a <= b)
val res = ???
assert(res == bruteForce(a, b))
res
}
这里有一些例子
bruteForce( 5, 7) == 6 // binary 110 (1 trailing zero)
bruteForce( 1, 255) == 128 // binary 10000000
bruteForce(129, 255) == 192 // binary 11000000
等等
【问题讨论】:
标签: algorithm scala bit-manipulation