热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

收集一些top软件公司经典算法面试题

有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?)给出一个函数来输出一个字符串的所有排列。请编写实现malloc()内存分配函数功能一样的代码。给出一个函数来复制

微软

  1. 有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。
  2. 写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?)
  3. 给出一个函数来输出一个字符串的所有排列。
  4. 请编写实现malloc()内存分配函数功能一样的代码。给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。
  5. 怎样编写一个程序,把一个有序整数数组放到二叉树中?
  6. 怎样从顶部开始逐层打印二叉树结点数据?请编程。
  7. 怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)?
  8. 请编写能直接实现int atoi(const char * pstr)函数功能的代码。
  9. 编程实现两个正整数的除法,编程实现两个正整数的除法,当然不能用除法操作符。
  10. // return x/y.
    int div(const int x, const int y) 
    {
      ....
    }
    
  11. 在排序数组中,找出给定数字的出现次数,比如 [1, 2, 2, 2, 3] 中2的出现次数是3次。
  12. 平面上N个点,每两个点都确定一条直线,求出斜率最大的那条直线所通过的两个点(斜率不存在的情况不考虑)。时间效率越高越好。
  13. 一个整数数列,元素取值可能是0~65535中的任意一个数,相同数值不会重复出现。0是例外,可以反复出现。请设计一个算法,当你从该数列中随意选取5个数值,判断这5个数值是否连续相邻。注意:
    • 5个数值允许是乱序的。比如: 8 7 5 0 6
    • 0可以通配任意数值。比如:8 7 5 0 6 中的0可以通配成9或者4
    • 0可以多次出现。
    • 复杂度如果是O(n2)则不得分。
  14. 设计一个算法,找出二叉树上任意两个结点的最近共同父结点。复杂度如果是O(n2)则不得分。
  15. 一棵排序二叉树,令 f=(最大值+最小值)/2,设计一个算法,找出距离f值最近、大于f值的结点。复杂度如果是O(n2)则不得分。
  16. 一个整数数列,元素取值可能是1~N(N是一个较大的正整数)中的任意一个数,相同数值不会重复出现。设计一个算法,找出数列中符合条件的数对的个数,满足数对中两数的和等于N+1。复杂度最好是O(n),如果是O(n2)则不得分。

Google

  1. 正整数序列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)、设计测试数据来验证函数程序在各种输入下的正确性。
  2. 有一个由大小写组成的字符串,现在需要对他进行修改,将其中的所有小写字母排在答谢字母的前面(大写或小写字母之间不要求保持原来次序),如有可能尽量选择时间和空间效率高的算法 c语言函数原型void proc(char *str) 也可以采用你自己熟悉的语言。
  3. 如何随机选取1000个关键字,给定一个数据流,其中包含无穷尽的搜索关键字(比如,人们在谷歌搜索时不断输入的关键字)。如何才能从这个无穷尽的流中随机的选取1000个关键字?
  4. 判断一个自然数是否是某个数的平方。说明:当然不能使用开方运算。
  5. 给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数。
  6. 1024! 末尾有多少个0?
  7. 有5个海盗,按照等级从5到1排列,最大的海盗有权提议他们如何分享100枚金币。但其他人要对此表决,如果多数反对,那他就会被杀死。他应该提出怎样的方案,既让自己拿到尽可能多的金币又不会被杀死?(提示:有一个海盗能拿到98%的金币)
  8. 23、Google2009华南地区笔试题。给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含),指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数。比如,A=[1,0] K=21 那么输出结构应该为100。

百度

  1. 用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回。
  2. 用C语言实现函数void * memmove(void *dest, const void *src, size_t n)。memmove 函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。分析:由于可以把任何类型的指针赋给void类型的指针,这个函数主要是实现各种数据类型的拷贝。
  3. 有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。木杆很细,不能同时通过一只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。编写程序,求所有蚂蚁都离开木杆的最小时间和最大时间。

腾讯

  1. 请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句
  2. 两个数相乘,小数点后位数没有限制,请写一个高精度算法
  3. 有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥?
  4. 有12个小球,外形相同,其中一个小球的质量与其他11个不同,给一个天平,问如何用3次把这个小球找出来,并且求出这个小球是比其他的轻还是重
  5. 在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。只写出思路即可。
  6. 一个文件中有40亿个整数,每个整数为四个字节,内存为1GB,写出一个算法:求出这个文件里的整数里不包含的一个整数。
  7. 腾讯服务器每秒有2w个QQ号同时上线,找出5min内重新登入的qq号并打印出来。

雅虎

  1. 编程实现:把十进制数(long型)分别以二进制和十六进制形式输出,不能使用printf系列
  2. 编程实现:找出两个字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串为"cad"
  3. 有双向循环链表结点定义为:
  4. struct node
    { 
      int data;
      struct node *front,*next;
    };
    
    有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除。

网易

  1. 两个圆相交,交点是A1,A2。现在过A1点做一直线与两个圆分别相交另外一点B1,B2。B1B2可以绕着A1点旋转。问在什么情况下,B1B2最长
  2. Smith夫妇召开宴会,并邀请其他4对夫妇参加宴会。在宴会上,他们彼此握手,并且满足没有一个人同自己握手,没有两个人握手一次以上,并且夫妻之间不握手。然后Mr. Smith问其它客人握手的次数,每个人的答案是不一样的。求Mrs Smith握手的次数
  3. 有6种不同颜色的球,分别记为1,2,3,4,5,6,每种球有无数个。现在取5个球,求在一下 的条件下:
    • 5种不同颜色,
    • 4种不同颜色的球,
    • 3种不同颜色的球,
    • 2种不同颜色的球,
    它们的概率。
  4. 有一次数学比赛,共有A,B和C三道题目。所有人都至少解答出一道题目,总共有25人。在没有答出A的人中,答出B的人数是答出C的人数的两倍;单单答出A的人,比其他答出A的人总数多1;在所有只有答出一道题目的人当中,答出B和C的人数刚好是一半。求只答出B的人数。
  5. 从尾到头输出链表,题目:输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下:
  6. struct ListNode
    {
      int  m_nKey;
      ListNode* m_pNext;
    };
    
    分析:这是一道很有意思的面试题。该题以及它的变体经常出现在各大公司的面试、笔试题中。

其它

  1. 金币概率问题,题目:10个房间里放着随机数量的金币。每个房间只能进入一次,并只能在一个房间中拿金币。一个人采取如下策略:前四个房间只看不拿。随后的房间只要看到比前四个房间都多的金币数,就拿。否则就拿最后一个房间的金币。编程计算这种策略拿到最多金币的概率。
  2. 找出数组中唯一的重复元素,1-1000放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次.每个数组元素只能访问一次,设计一个算法,将它找出来;不用辅助存储空间,能否设计一个算法实现?
  3. 一排N(最大1M)个正整数+1递增,乱序排列,第一个不是最小的,把它换成-1,最小数为a且未知求第一个被-1替换掉的数原来的值,并分析算法复杂度。
  4. 题目:输入四个点的坐标,求证四个点是不是一个矩形,关键点:
    • 相邻两边斜率之积等于-1,
    • 矩形边与坐标系平行的情况下,斜率无穷大不能用积判断。
    • 输入四点可能不按顺序,需要对四点排序。
  5. 矩阵式螺旋输出
  6. 求两个或N个数的最大公约数和最小公倍数。
  7. 最长递增子序列。题目描述:设L=是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=,其中k1
  8. 字符串原地压缩,题目描述:"eeeeeaaaff" 压缩为 "e5a3f2",请编程实现。
  9. 字符串匹配实现,请以俩种方法,回溯与不回溯算法实现。
  10. 一个含n个元素的整数数组至少存在一个重复数,请编程实现,在O(n)时间内找出其中任意一个重复数。
  11. 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。要求:空间复杂度O(1),时间复杂度为O(n)。

本文地址:http://www.nowamagic.net/librarys/veda/detail/1261,欢迎访问原出处。


推荐阅读
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 深入解析ESFramework中的AgileTcp组件
    本文详细介绍了ESFramework框架中AgileTcp组件的设计与实现。AgileTcp是ESFramework提供的ITcp接口的高效实现,旨在优化TCP通信的性能和结构清晰度。 ... [详细]
  • 本文介绍了一个基于 Java SpringMVC 和 SSM 框架的综合系统,涵盖了操作日志记录、文件管理、头像编辑、权限控制、以及多种技术集成如 Shiro、Redis 等,旨在提供一个高效且功能丰富的开发平台。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
  • 本文详细探讨了Java命令行参数的概念、使用方法及在实际编程中的应用,包括如何通过命令行传递参数给Java程序,以及如何在Java程序中解析这些参数。 ... [详细]
  • 华为智慧屏:超越屏幕尺寸的智能进化
    继全球发布后,华为智慧屏于9月26日在上海正式亮相,推出65英寸和75英寸版本。该产品不仅在屏幕尺寸上有所突破,更在性能和智能化方面实现了显著提升。 ... [详细]
  • 本文介绍如何利用栈数据结构在C++中判断字符串中的括号是否匹配。通过顺序栈和链栈两种方式实现,并详细解释了算法的核心思想和具体实现步骤。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 本文探讨了为何相同的HTTP请求在两台不同操作系统(Windows与Ubuntu)的机器上会分别返回200 OK和429 Too Many Requests的状态码。我们将分析代码、环境差异及可能的影响因素。 ... [详细]
  • 智能医疗,即通过先进的物联网技术和信息平台,实现患者、医护人员和医疗机构之间的高效互动。它不仅提升了医疗服务的便捷性和质量,还推动了整个医疗行业的现代化进程。 ... [详细]
  • Python技巧:利用Cookie实现自动登录绕过验证码
    本文详细介绍了如何通过Python和Selenium库利用浏览器Cookie实现自动登录,从而绕过验证码验证。文章提供了具体的操作步骤,并附有代码示例,帮助读者理解和实践。 ... [详细]
  • 程序员版情书:王思聪的编程式告白
    当程序员用代码表达爱意,会产生怎样的化学反应?一起来看看这封充满技术感的情书,网友笑称这才是真爱! ... [详细]
  • 本文详细介绍了C语言中的基本数据类型,包括整型、浮点型、字符型及其各自的子类型,并探讨了这些类型在不同编译环境下的表现。 ... [详细]
  • 1、字符型常量字符型常量指单个字符,是用一对单引号及其所括起来的字符表示。例如:‘A’、‘a’、‘0’、’$‘等都是字符型常量。C语言的字符使用的就是 ... [详细]
author-avatar
芳芳的地盘1990
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有