百度2015校园招聘笔试题

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


一 、简答题(30分)
1. 进程和线程的联系与区别。


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


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


二、 算法与程序设计题(45分)
1 请编码实现memcpy函数:void *memcpy(void *dst,const void *src,unsigned int len)


2 整数矩阵A[N][N],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<<"*#";  
  }  
} 


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值