面试题练习

来源:互联网 发布:淘宝公告栏在哪里 编辑:程序博客网 时间:2024/05/16 05:01

百度2013校园招聘笔试题(欢迎高手给予指点)

分类: 笔试面试题 数据结构-算法 5921人阅读 评论(9)收藏举报
招聘百度手机windows数据库算法

一、简答题

   1.简述数据库以及线程死锁产生的原理及必要条件,简述如何避免死锁。

   2.请列举面向对象设计的三个基本要素和五种主要涉及原则。

   3.简述windows内存管理的几种方式及优缺点。

二、算法和程序设计

   1.公司组织一次羽毛球比赛,采用淘汰机制,假设公司有1001个人,如果要评出“公司羽毛球第一高手”的称号,至少需要进行多少场比赛?请简述设计过程,并写出代码模拟比赛过程

   2.一百个灯泡排成一排,第一轮将所有灯泡打开;第二轮每隔一个灯泡关掉一个。即排在偶数的灯泡被关掉,第三轮每隔两个灯泡,将开着的灯泡关掉,关掉的灯泡打开。依次类推,第100轮结束的时候,还有几盏灯泡亮着。

   3.假定有20个有序数组,每个数组有500个数字,数字类型32位uint数值,现在需要取出这10000个数字中最大的500个,怎么做?

三、系统设计题

   手机上通常采用九键键盘输入。即:1-9个数字分别对应一定的英文字母(如:2对应ABC, 3对应DEF,...),因此,用户可以方便的输入中文内容。比如,用户输入“926”,可以对应“WXYZ”,“ABC"和”MNO“的一系列组合”WAN”,“YAN"、”ZAO“等,这些对应“万”,“严”,“早”等汉字的中文拼音。

   要求我们把这样的输入方式应用在我们的手机联系人查找功能上。有一个联系人列表UserList,记录了(姓名,手机号)这样的组合,通过输入的数字字符串NumStr,按照下面的规则把对应的联系人查找出来,返回一个ReaultList。

规则:

   1.手机号能连续部分匹配输入的数字字符串NumStr。如输入NumStr=926,则手机号为13926811111会被查出来;

   2.联系人姓名中的汉字转化成拼音后能够连续匹配输入数字字符串NumStr对应的英文字母组合,如:输入NumStr=926,则联系人“王二”、“万事通”会被查找出来。因为“王二”的“王”的拼音“WANG”中含有“WAN”,和“926”能匹配。

输入:

   联系人列表UserList<UserName, PhoneNo>;汉字拼音射射表Dict,数字拼音字符串NumStr。

输出:

   符合规则的联系人列表ResultList<UserName, PhoneNo>。



腾讯2013校园招聘笔试题

分类: 笔试面试题 数据库 数据结构-算法 Java 7746人阅读 评论(2)收藏举报
招聘腾讯mysql

1、生产者消费者问题,信号量

2、深度优先遍历二叉树

4、Belady

5、进程调度

6、数组最长子序列和

7、数组最长递增子序列

8、fork();函数

9、n个数进栈,出栈方式有多少种(卡特兰数)

10、逆波兰式

11、MySQL带条件和排序的select语句执行顺序、索引

 



搜狗笔试题(请高手们提供牛逼答案)

分类: 笔试面试题 数据结构-算法 Java 1934人阅读 评论(1)收藏举报
搜狗

一、已知计算机有一下原子操作

1、 赋值操作:b = a;

2、 ++a和a+1;

3、for( ){ ***}有限循环;

4、操作数只能为0或者正整数;

5、定义函数

实现加减乘除操作

提示:

     实现减法操作:

[java] view plaincopy
  1. static int dec(int n) {  
  2.     int tmp = 0;  
  3.     int result = 0;  
  4.     for (int i = 0; i < n; i++) {  
  5.         result = tmp;  
  6.         tmp++;  
  7.     }  
  8.     return result;  
  9. }  


   这段代码执行后,result的值将变为n-1。注意到这段代码在自增时是如何巧妙地延迟了一步的。
现在,我们相当于有了自减一的函数dec。实现a-b只需要令a自减b次即可:

[java] view plaincopy
  1. static int testA_B(int a, int b){  
  2.     int result = a;  
  3.     for(int i=0; i<b; i++){  
  4.         result = dec(result);  
  5.     }  
  6.     return result;  
  7. }  
二、对一个链表进行排序,效率越高越好,LinkedList<Integer>.



数码视讯笔试题

分类: 笔试面试题 Java 数据结构-算法 1366人阅读 评论(0)收藏举报
calendarstringfileclassimportnull

1、输入文件的名字,以字符串的形式打印出文件的内容

[java] view plaincopy
  1. import java.io.BufferedReader;  
  2. import java.io.InputStreamReader;  
  3. import java.io.FileReader;  
  4. import java.io.File;  
  5. import java.io.IOException;  
  6. private static void readFile(String filename) throws IOException {  
  7.     File file = new File(filename);  
  8.     if (file.exists() && file.isFile()) {  
  9.         BufferedReader buf = new BufferedReader(new FileReader(file));  
  10.         String line = null;  
  11.         while ((line = buf.readLine()) != null) {  
  12.             System.out.println(line);  
  13.         }  
  14.         buf.close();  
  15.     } else {  
  16.         System.out.println("文件不存在");  
  17.     }  
  18. }  


 

 

2、计算从今天后的97天是星期几,日期格式为2010-09-23,打印出97天后的日期

[java] view plaincopy
  1. public class Test{  
  2.     public static void main(String args[]){  
  3.           // 得到当前日期  
  4.           Calendar calendar = Calendar.getInstance();  
  5.           // 加上97天  
  6.           calendar.add(Calendar.DAY_OF_YEAR, 97);  
  7.           // 时间格式化  
  8.           SimpleDateFormat mFormat = new SimpleDateFormat("yyyy-MM-dd");  
  9.           // 输出日期  
  10.           System.out.println("今天之后的第97天是:" + mFormat.format(calendar.getTime()));  
  11.           // 从新格式化  
  12.           mFormat = new SimpleDateFormat("E");  
  13.           // 显示周几  
  14.           System.out.println(mFormat.format(calendar.getTime()));  
  15.         }     
  16. }  


 

3、写一个方法求100以内的素数,要求效率尽可能的高。

[java] view plaincopy
  1. public class Test{  
  2.     public static void main(String args[]){  
  3.             int i, j;  
  4.             int[] a = new int[101];  
  5.             for(i=0; i<101; i++){   //初始化数组  
  6.                 a[i] = 1;  
  7.             }  
  8.             //筛选出100内的所有素数,从小到大筛去一个已知素数的所有倍数,例如根据2可筛去4、6、...、98,  
  9.             //根据3可筛去9、15、...、99;  
  10.             //由于4已被筛去,下一个为素数5,依次类推  
  11.             for(i=2; i<101; i++){  
  12.                 if(a[i]!=0){  
  13.                     for(j=i+i; j<101; ){  
  14.                         if(j%i == 0){  
  15.                             a[j] = 0;  
  16.                             j = j + i;  
  17.                         }  
  18.                     }  
  19.                 }  
  20.             }  
  21.             for(i=2; i<101; i++){  
  22.                 if(a[i] != 0){  
  23.                     System.out.println(i);  
  24.                 }  
  25.             }  
  26.         }     
  27. }  



0 0
原创粉丝点击