迅雷笔试题 /*定义循环左移函数(我没有用左移函数)*/
{
int i,j;
char temp=str[0];
for (i=0;i<m;i++) str[i]=str[i+1];
str[i]=temp;
}
void pai(char str[],int m,int n) /*定义全排列函数*/
{ int k;
void chang(char str[],int m);
if (m<n) /* 定 义 递 归 调 用 出 口 */
{
for (k=0;k<=m;k++)
{
pai(str,m+1,n); /*递归调用*/
chang(str,m); /*调用左移函数*/
}
}
else printf("%s\t",str);
}
1. include "stdio.h"
main()
{char str[]="ABCD"; /*全排列字符,可以任意多个(相应的下面排列函数中参数"4"改成全排列字符的个数)*/ clrscr(); pai(str,0,4); /*这里参数0(下标)表示从第一个元素开始,4表示元素个数(不是下标)*/ getch();
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
今天在家看碟,突然接到迅雷一个电话让我去笔试。遇到两个很有意思的题目,现有奖征集第一题的答案:B1套餐一份。
1.<征集答案>给你10台机器,每个机器2个cpu,2g内存,现在已知在10亿条记录的数据库里执行一次查询需要5秒,问用什么方法能让90%的查询能在100毫秒以内返回结果。
2.一个长度为10000的字符串,写一个算法,找出最长的重复子串,如abczzacbca,结果是bc。最后就做出这一道题目,时间复杂度为O(n!), 空间复杂度为O(n)。如果有更好的算法,还请指教。
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
凭印象了:
算法题:
1.连接两个单向链表,返回排序后的结果。
2.一个保存有10000个URL的文本文件,删除其中相同的URL。
3.将9个石子放在9x9的方格中,要求同行、同列、45度上无两个石子。
智力题:
1.一笔画四条直线穿过3x3的9个点。
2.国王给三个囚犯每人戴了一顶帽子,帽子不是黑色就是白色,并且告诉囚犯们谁看到其它两个人都是白帽子或者知道自己戴的是黑帽子,谁就能被释放。囚犯们能看到其它的人帽子颜色,但是看不到自己的帽子颜色。过了一段时间,三个囚犯都没有说话,其中一个聪明的囚犯立刻肯定自己戴的是黑帽子,你知道为什么吗?
3.有16个硬币,A和B轮流拿,每次拿的个数只能是1,2,4之一,谁最后拿谁就输。问可以保证赢吗?
上机题:
nxn的方格,去掉一条对角线的两个对角,余下部分用面积为2的矩形覆盖,即1x2或2x1的矩形,结果是不可能完全覆盖,请编程枚举所有的覆盖情况
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
一个猴子,身带100个香蕉,他距离家50米. 这个猴子要带香蕉回去.但是他一次最多只能背50个香蕉.
而且,每走一米他就要吃掉一个香蕉(往回走也要吃香蕉).
问:这个猴子最后最多可以带多少个香蕉到家.
能不能推广到其他情况,例如500个香蕉100米?
、、、、、、、、、、、、、、、、、、、、、、、、、、、
3 人戴 5 个帽子,三蓝两红,自己看不到自己的帽子,只能看到别人的.提问时,前两个人都说不知道自己什么颜色,第三个人居然知道.
我没看到原题, 不过我觉得这道题应该有一个漏掉的说明: 每人只能戴1顶帽子. 否则,这道题目就挺繁琐了. 另外, 题目要问的可能是: 这三个人分别戴了什么颜色的帽子?
我的解(从第1个人到第3个人):
1. 蓝, 蓝, 蓝
2. 红, 红, 蓝
3. 蓝, 红, 蓝
4. 红, 蓝, 蓝
另外, 如果考虑每个人至少戴1顶帽子, 最多3顶帽子的话, 还要加上如下情况:
1. (红, 蓝), (红, 蓝), 蓝
2. (红, 蓝), 红, 蓝
3. (红, 蓝), 蓝, 蓝
4. 红, (红, 蓝), 蓝
5. 蓝, (红, 蓝), 蓝
|