百度笔试归来,好难的题目,第二题完全没看懂,抄了回来,题目如下:
一、简答题
1.简述树的深度搜索,广度搜索,及非递归实现的特点
2.请指出下面程序可能会出现不安全,或错误的地方,并说明原因
struct complex_t
{
int real;
int imag;
}
int create(complex_t * p,int n)
{
p = new complex_t[n];
if(p==NULL)
return -1;
return 0;
}
int compute()
{
complex_t *comp;
unsigned int num=0;
cin >> num;
if(create(comp,num)<0)
return -1;
long long int sum =0;
unsigned int pos =0;
cin >>pos;
while(pos<num)
{
cin>>comp[pos].real>>comp[pos].imag;
cin>>comp[pos+1].real>>comp[pos+1].imag;
sum += comp[pos].real*comp[pos+1].real+comp[pos].imag*comp[pos+1].imag;
pos +=2;
}
cout<<”sum is”<<sum<<endl;
return 0;
}
3.有一台迷你计算机,1kb内存,和1Mhz的处理器(即每秒可以改变10^6次状态)。你现在设计一个程序,这个程序尽可能长的执行,程序必须能在有限时间内终止(不存在死循环)。可以做一些你认为需要的假设,最后给出这个程序最长的运行时间。
二、程序设计题
1.在一些大的项目中往往有很多很多组件需要编译,现有一个大的项目有N(N>1000)个组件。这些不同的组件之间可能存在依赖关系,比如N1依赖N2,即必须N2编译之后,才能编译N1。现在需要你设计一个快速算法,来完成这个编译过程的构建。并给出这个算法的时间复杂度。
2.实现下面的函数,int ContinueNum(const char* inputstr, char* outputstr)
输入一个以’\0′结尾的字符串,找出它的最长数字字串,并返回它的长度和位置
比如”asf132sdf2343sdf123456789df”
函数返回 9,outputstr为”123456789″
注:不能使用库函数,比如strlen等等。
三、系统设计题
设计一个系统,存储100亿个url以及它的属性。URL= universal resource locator
比如” www.baidu.com/s?wd=baidu”,” www.baidu.com”为site,其余部分为path。一个url,有定长的属性,比如它的创建时间,有不定长的属性,比如它所包含的信息。现在需要设计一个系统,必须满足下面的要求:
1. 能够存储url以及它的属性
2. 能够添加,更新,删除url
3. 给定一些url,能确定该url是否存在,并获取它的属性
4. 给定一个site,能获取它相关的url
注:由于url的数量非常巨大,可能需要存储在不同的计算机中
over,总共6题
我是totally看不懂第一部分第3题,唉。。。
不去想了,明天网易去