由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 今天听来的一个题
相关主题
01 Knapsack brute force code一个基本的复杂度问题
这个算法题算难吗问问街霸和其他刷poj的人们
问个关于二分图的算法nvidia面试题
贡献一下:本版上搜集的 Google 面试题输入一个整数,返回它二进制 的1的个数
问一个关于xor的题how to reverse the bits of an integer?
离奇的Amzaon第一轮电面位操作
google电面第一轮面经 求bless最近onsite的时候刚拿到一道面试题?
问一个bit operation的题目FLG面试题,压缩整数 (转载)
相关话题的讨论汇总
话题: int话题: mid话题: low话题: log话题: mask
进入JobHunting版参与讨论
1 (共1页)
g**e
发帖数: 6127
1
求32bit int log base 2. 越快越好
d**********x
发帖数: 4083
2
就是msb位置啊
用类似2分的办法可以做到log(bits)的速度
其实我记得cpu貌似直接有指令可以取

【在 g**e 的大作中提到】
: 求32bit int log base 2. 越快越好
g**e
发帖数: 6127
3
yes, clz 这题考刚毕业的还可以,考工作七八年的是不是太偏了点

【在 d**********x 的大作中提到】
: 就是msb位置啊
: 用类似2分的办法可以做到log(bits)的速度
: 其实我记得cpu貌似直接有指令可以取

A**u
发帖数: 2458
4
把int表示成2的倍数
比如
3 = 1+2 => 0 + 1 = 1
10 = 2+ 8 => 1 + 3 = 4
15 = 8+4+2+1 => 3 + 2 + 1 + 0 = 7
所以和count 1算法类似,做些小修改

【在 g**e 的大作中提到】
: 求32bit int log base 2. 越快越好
l*****a
发帖数: 14598
5
不是查对数表吗?O(1)

【在 g**e 的大作中提到】
: 求32bit int log base 2. 越快越好
d**e
发帖数: 6098
6
我不会。。。

【在 g**e 的大作中提到】
: yes, clz 这题考刚毕业的还可以,考工作七八年的是不是太偏了点
g**e
发帖数: 6127
7
我会这个 Math.log(n)/Math.log(2),在我的机器上比clz慢10倍

【在 d**e 的大作中提到】
: 我不会。。。
M********5
发帖数: 715
8
门神你真的也开始准备面试题啦~~~
b******7
发帖数: 92
9
算法思想:求n二进制中最高位的1所在的位置(32种可能),brute force或二分
int log(int n)
{
int t = -1;
while(n > 0)
{
n=n>>1;
t++;
}
return t;
}
int log(int n)
{
int t = -1;
int low = 0, high = sizeof(int)*8-1;//31
while(low <= high)
{
int mid = low + (high - low)/2;
int mask = 1 << mid;
if(mask & n)
{
t = mid;
}
if(mask >= n)
high = mid -1;
else
low = mid + 1;
}
return t;
}

【在 g**e 的大作中提到】
: 求32bit int log base 2. 越快越好
k***x
发帖数: 6799
10
他是研究(面试)别人吧,跟被人研究(面试)区别大了去了。。。

【在 M********5 的大作中提到】
: 门神你真的也开始准备面试题啦~~~
e***s
发帖数: 799
11
我感觉二分好像不会比BF快,因为 每次都1 << mid。说不定更耗时

【在 b******7 的大作中提到】
: 算法思想:求n二进制中最高位的1所在的位置(32种可能),brute force或二分
: int log(int n)
: {
: int t = -1;
: while(n > 0)
: {
: n=n>>1;
: t++;
: }
: return t;

l*********8
发帖数: 4642
12
答案要求是double数据吧?

【在 g**e 的大作中提到】
: 求32bit int log base 2. 越快越好
a*****s
发帖数: 1121
13
哥们,您这方法不对,7×7=49了。
不能用加法分开在做log和的。您得先了解一下对数运算法则。log16=log(4×4)=
log4+log4

【在 A**u 的大作中提到】
: 把int表示成2的倍数
: 比如
: 3 = 1+2 => 0 + 1 = 1
: 10 = 2+ 8 => 1 + 3 = 4
: 15 = 8+4+2+1 => 3 + 2 + 1 + 0 = 7
: 所以和count 1算法类似,做些小修改

1 (共1页)
进入JobHunting版参与讨论
相关主题
FLG面试题,压缩整数 (转载)问一个关于xor的题
BB的面试题-只用&和| 如何reverse a bit string?离奇的Amzaon第一轮电面
听来的两个跟找工作的事google电面第一轮面经 求bless
废除flag,还是叫TGF吧,问一个bit operation的题目
01 Knapsack brute force code一个基本的复杂度问题
这个算法题算难吗问问街霸和其他刷poj的人们
问个关于二分图的算法nvidia面试题
贡献一下:本版上搜集的 Google 面试题输入一个整数,返回它二进制 的1的个数
相关话题的讨论汇总
话题: int话题: mid话题: low话题: log话题: mask