【发布时间】:2020-06-10 04:44:30
【问题描述】:
此代码查找数字是否为 2 的幂的时间复杂度是多少。
是O(1)吗?
bool isPowerOfTwo(int x) {
// x will check if x == 0 and !(x & (x - 1)) will check if x is a power of 2 or not
return (x && !(x & (x - 1)));
}
LeetCode 231
【问题讨论】:
-
是的,没错。
-
是的,它是 O(1),因为所花费的时间不取决于输入的大小(我猜这将是数字
x的大小)。
标签: c++ algorithm bit-manipulation bitwise-operators