由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 面试被问了议题: check if an integer is power of 2 (转载)
相关主题
我花了一个小时才调通过这个程序find duplicate integers in a big file
问一道排序题M 家电话难题
MS intern 电面被拒,附上面试过程amazon 电面问题 求解答, 在线等
O(N) sort integer array这个最优解应该是怎样的?
看programming pearl进行时的感想再请教一个读法
数组里面找数个出现了奇数次的整数,怎么找?Yelp 面试
amazon 一道题一道不太主流的面试题
subsetBitmap是怎么回事啊?
相关话题的讨论汇总
话题: integer话题: 议题话题: 面试话题: power话题: bitpos
进入JobHunting版参与讨论
1 (共1页)
c*****e
发帖数: 737
1
【 以下文字转载自 Programming 讨论区 】
发信人: coollpe (coollpe), 信区: Programming
标 题: 面试被问了议题: check if an integer is power of 2
发信站: BBS 未名空间站 (Wed Feb 15 10:16:41 2012, 美东)
我首先回答了每次左移移1位比较,然后面试官不满意,我又想出来bitmap,开个64k数
组,他说能不能只有1条语句的判断,我死活想不出来。
后来回家google发现了 x & (x-1)这个trick。不过我觉得如果没看到过的话要在面试
时间内想出来简直不可能。
测试了一下,bitmap的速度要比 x && (x & (x-1))快一些。但机器不同结果也不同。
回家我又想了若干方法
1, popcnt (x) == 1, 新处理器已经可以在1个指令周期内完成。
2, ffs(x)查表,这个表大概只要存32个整数,占用存储小很多,速度和x & (x-1)差不多
3, asm bsrl, asfl, 2个指令周期+1次比较,和x && (x & (x-1)一样快
m*******l
发帖数: 12782
2
150上有

【在 c*****e 的大作中提到】
: 【 以下文字转载自 Programming 讨论区 】
: 发信人: coollpe (coollpe), 信区: Programming
: 标 题: 面试被问了议题: check if an integer is power of 2
: 发信站: BBS 未名空间站 (Wed Feb 15 10:16:41 2012, 美东)
: 我首先回答了每次左移移1位比较,然后面试官不满意,我又想出来bitmap,开个64k数
: 组,他说能不能只有1条语句的判断,我死活想不出来。
: 后来回家google发现了 x & (x-1)这个trick。不过我觉得如果没看到过的话要在面试
: 时间内想出来简直不可能。
: 测试了一下,bitmap的速度要比 x && (x & (x-1))快一些。但机器不同结果也不同。
: 回家我又想了若干方法

c*****e
发帖数: 737
3
比较最高位1的位置是否等于最低位1的位置
bool isPowerOfTwo(int x_)
{
register int bitpos, bitpos2;
asm ("bsrl %1,%0": "+r" (bitpos):"rm" (x_));
asm ("bsfl %1,%0": "+r" (bitpos2):"rm" (x_));
return bitpos == bitpos2;
}
c*****e
发帖数: 737
4
我觉得面试官也就靠记才知道,否则谁想得出?
况且现在popcnt(x)可以做到比他的trick更快。

【在 m*******l 的大作中提到】
: 150上有
a********n
发帖数: 1287
5
这个没做过的确想不出来。

【在 c*****e 的大作中提到】
: 我觉得面试官也就靠记才知道,否则谁想得出?
: 况且现在popcnt(x)可以做到比他的trick更快。

1 (共1页)
进入JobHunting版参与讨论
相关主题
Bitmap是怎么回事啊?看programming pearl进行时的感想
有什么好方法找int的binary表示里面1的个数?数组里面找数个出现了奇数次的整数,怎么找?
检查一个整数是不是2的幂次方的最快方法amazon 一道题
贡献电面 (A)subset
我花了一个小时才调通过这个程序find duplicate integers in a big file
问一道排序题M 家电话难题
MS intern 电面被拒,附上面试过程amazon 电面问题 求解答, 在线等
O(N) sort integer array这个最优解应该是怎样的?
相关话题的讨论汇总
话题: integer话题: 议题话题: 面试话题: power话题: bitpos