智力问答题及答案大全
2018-09-17 21:20:48 梦悠网
在平时的面试中我们总会遇到一些有趣的经典智力题,很多人不禁担心智力问题会不会与智商有关,其实这种面试智力题只要多多练习就好了,今天我们就智力题大全来聊聊其中的一些经典。
一、聊聊智力题大全中的面试智力题
1、考虑一个双人游戏。这个游戏在一个圆形桌上进行。每个参与者都有充足的硬币。参与者要轮流在圆桌上放置硬币而且每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部分悬在桌子外面)而且要求不能与原来放过的硬币重叠。谁没有地方放置新的硬币那么谁就输了。参与游戏的先行还是后行者有必胜攻略?这种策略是什么?
答案:先行者在桌子中心放置一枚硬币,之后的硬币总是放在与后行者刚刚放置的位置并与之对称的地方。这样只要后行者能放,先行者一定也有地方放则先行者必胜。
2、 用线性时间和常数附加空间将一篇文章的单词(不是字符)倒序。
答案:先将整篇文章的所有字符逆序(从两头起不断交换位置相对称的字符);然后用同样的办法将每个单词内部的字符逆序。这样整篇文章的单词顺序颠倒了,但单词本身又被转回来了。
3、 用线性时间和常数附加空间将一个长度为n的字符串向左循环移动m位(例如,"acdefg"移动3位就变成了"defgac")。
答案:把字符串切成长为m和n-m的两半。将这两个部分分别逆序,再对整个字符串逆序。
4、一个矩形蛋糕并且蛋糕内部有一块矩形的空洞。要求是只可以切一刀的情况下如何将蛋糕切成大小相等的两块?
答案:注意到平分矩形面积的线都经过矩形的中心。过大矩形和空心矩形各自的中心画一条线,这条线显然把两个矩形都分成了一半所以它们的差当然也是相等的。
5、 一块矩形的巧克力,初始时由N x M个小块组成。每一次你只能把一块巧克力掰成两个小矩形的话问最少要几次才能把它们掰成N x M块1x1的小巧克力块?
答案:N x M - 1次显然足够了。这个数目也是必需的原因是每掰一次后当前巧克力的块数只能增加一,把巧克力分成N x M块当然需要至少掰N x M - 1次。
6、如何快速找出一个32位整数的二进制表达里有多少个"1"?用关于"1"的个数的线性时间?
答案1:(关于数字位数线性):for(n=0; bb >>= 1) if (b & 1) n++;
答案2:(关于"1"的个数线性):for(n=0; bn++) b &= b-1;
7、 一个大小为N的数组中所有数都是不超过N-1的正整数。用O(N)的时间找出重复的那个数(假设只有一个)。一个大小为N的数组中所有数都是不超过N+1的正整数。用O(N)的时间找出没有出现过的那个数(假设只有一个)。
答案:计算数组中的所有数的和,再计算出从1到N-1的所有数的和,两者之差即为重复的那个数。计算数组中的所有数的和,再计算出从1到N+1的所有数的和,两者之差即为缺少的那个数。
关于智力问题我们可以多多练习一些经典智力题,那么这样的话我们就可以学会其中的解题技巧,从而在面试环节中迎刃而解。