您的位置:首页 > 其它

百度2015校园招聘笔试题

2014-09-20 15:43 323 查看
百度2015校园招聘笔试题(自己凭记忆第一时间,记录了这么多,有些描述比较简单,请大神们补充)

一 、简答题(30分)

1. 进程和线程的联系与区别。

2. 简述数据库的存储过程及其优点。

3. static全局变量与普通的全局变量有什么区别?static局部变量和普通的区别?static函数和普通函数的区别?

二、 算法与程序设计题(45分)

1 请编码实现memcpy函数:void *memcpy(void *dst,const void *src,unsigned int len)

2 整数矩阵A

,N<10000,满足如下条件:

当 j < k 时,有:

A[i][j] < A[i][k] 且 A[j][i] < A[k][i]

输入整数M,输出M在矩阵中的位置<i,j>,如果未找到,则输出NULL,要求尽可能的高效。

3 设计一个栈,要求提供min造作的函数,且算法复杂度为O(1)

三、系统设计题(25)

就一道题:新浪微博,URL --> TinyURL

问题一:tinyurl后面的编码如何产生

问题二:当用户给出一个已映射过的URL时,如何找到其已经存在的tinyurl

问题三:若URL数量达到十亿条,在一个服务器上存储不下,要分不到10个服务器,怎么运作?

下面是一个插入的题目,百度面试时提问的题目:

依序遍历0到100闭区间内所有的正整数,如果该数字能被3整除,则输出该数字及‘*’标记;如果该数字能被5整除,则输出该数字及‘#’标记;如果该数字既能被3整除又能被5整除,则输出该数字及‘*#’标记。于此,个人提点拙劣的想法

第一思路是:(有些拙计)

void myAnswer(){
for(int i=0;i<=100;i++){
if(i%3==0){
if(i%5==0)cout<<i<<"*#";
else cout<<i<<"*";
}
else if(i%5==0) cout<<i<<"#";
}
}


后来想了一下,感觉很熟悉(poj 上的凑数)

int n=100,m3=1,m5=1,p=1;
while(p<=100)
{
if(m3*3>m5*5)
{
m3++;
p=m3*3;
cout<<p<<"*";
}
else if(m3*3<m5*5)
{
m5++;
p=m5*5;
cout<<p<<"#";
}
else
{
m3++;
m5++;
p=m3*3;
cout<<p<<"*#";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: