知名公司经典算法面试笔试题汇总

  微软

  有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。

  写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?)

  给出一个函数来输出一个字符串的所有排列。

  请编写实现malloc()内存分配函数功能一样的代码。给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。

  怎样编写一个程序,把一个有序整数数组放到二叉树中?

  怎样从顶部开始逐层打印二叉树结点数据?请编程。

  怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)?

  请编写能直接实现int atoi(const char * pstr)函数功能的代码。

  编程实现两个正整数的除法,编程实现两个正整数的除法,当然不能用除法操作符。

  1

  // return x/y.

  2

  int div(const int x, const int y)

  3

  {

  4

  ....

  5

  }

  在排序数组中,找出给定数字的出现次数,比如 [1, 2, 2, 2, 3] 中2的出现次数是3次。

  平面上N个点,每两个点都确定一条直线,求出斜率最大的那条直线所通过的两个点(斜率不存在的情况不考虑)。时间效率越高越好。

  一个整数数列,元素取值可能是0~65535中的任意一个数,相同数值不会重复出现。0是例外,可以反复出现。请设计一个算法,当你从该数列中随意选取5个数值,判断这5个数值是否连续相邻。注意:

  5个数值允许是乱序的。比如: 8 7 5 0 6

  0可以通配任意数值。比如:8 7 5 0 6 中的0可以通配成9或者4

  0可以多次出现。

  复杂度如果是O(n2)则不得分。

  设计一个算法,找出二叉树上任意两个结点的最近共同父结点。复杂度如果是O(n2)则不得分。

  一棵排序二叉树,令 f=(最大值+最小值)/2,设计一个算法,找出距离f值最近、大于f值的结点。复杂度如果是O(n2)则不得分。

  一个整数数列,元素取值可能是1~N(N是一个较大的正整数)中的任意一个数,相同数值不会重复出现。设计一个算法,找出数列中符合条件的数对的个数,满足数对中两数的和等于N+1。复杂度最好是O(n),如果是O(n2)则不得分。

  Google

  正整数序列Q中的每个元素都至少能被正整数a和b中的一个整除,现给定a和b,需要计算出Q中的前几项,例如,当a=3,b=5,N=6时,序列为3,5,6,9,10,12 (1)、设计一个函数void generate(int a,int b,int N ,int * Q)计算Q的前几项(2)、设计测试数据来验证函数程序在各种输入下的正确性。

  有一个由大小写组成的字符串,现在需要对他进行修改,将其中的所有小写字母排在答谢字母的前面(大写或小写字母之间不要求保持原来次序),如有可能尽量选择时间和空间效率高的算法 c语言函数原型void proc(char *str) 也可以采用你自己熟悉的语言。

  如何随机选取1000个关键字,给定一个数据流,其中包含无穷尽的搜索关键字(比如,人们在谷歌搜索时不断输入的关键字)。如何才能从这个无穷尽的流中随机的选取1000个关键字?

  判断一个自然数是否是某个数的平方。说明:当然不能使用开方运算。

  给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数。

  1024! 末尾有多少个0?

  有5个海盗,按照等级从5到1排列,最大的海盗有权提议他们如何分享100枚金币。但其他人要对此表决,如果多数反对,那他就会被杀死。他应该提出怎样的方案,既让自己拿到尽可能多的金币又不会被杀死?(提示:有一个海盗能拿到98%的金币)

  23、Google2009华南地区笔试题。给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含),指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数。比如,A=[1,0] K=21 那么输出结构应该为100。

  

本文已影响6827
上一篇:北京神舟航天软件面试题大全 下一篇:奇瑞汽车开放式面试问题

相关文章推荐

|||||