【算法】2015-2016 阿里、百度、360、豌豆荚、搜狗面试题部分集锦

已经工做3个多月了。整理曾经资料的时候,顺手翻到了以前实验室小伙伴们面试的记录。索性就分享出来了,需要的人可以參考一下html

360(c++)java

1面
一、堆排序
二、kmp
三、虚函数的做用
四、top k
五、int 范围的很是多的数,排序


2面
一、从左上角走到右下角一共多少种走法(用组合数学来讲)
二、从左上角走到右下角对角线不能走
三、前序中序求兴许
四、怎样找出分析出一个用户的年纪,用机器学习的方法
五、说说你学习的机器模型(不懂)
3面
一、为何没有机器学习的知识来报咱们部门
二、证实你的学习能力强
三、有啥问题
node


阿里(一面)c++android

1.使用cmd进入命令行模式,键盘上单击随意字符,对应字符会出现在界面上,这个过程发生了什么?
 我答得是:保存当前状态栈,进行IO中断处理。处理完后继续进行当前任务。(面试官说要微观的过程,不理解)
2. 进入命令行模式,光标一直在闪动。这里又发生了什么过程?(难道不是等待输入,不理解想要问什么微观过程)
3. 假设让你设计memcpy(des,src,size)函数,如果不知道所传參数类型,怎么知道des的大小和size关系?
4. 相同的问题,对于strcpy(des,src)函数。怎样知道des的大小(面试官说的是。假设你先给des malloc一段空间,当时你是知道该des指针的大小的,但是他做为參数传输strcpy函数中,怎样获取它的大小呢)
5. 说几个常见的设计模式理解。
6. 若想尽可能防止内存泄露,应该怎么办?
    刚開始说的是new和delete要成对出现,被他歧视一通,而后想起了智能指针说了一下。c++



阿里(一面)android面试

activity生命周期
开屏和关屏后activity的生命周期
java内存模型
设计一个android的登陆系统
http状态码 post get差异
推送机制(xmpp协议)
介绍一下项目
项目中的问题和解决方式
数据库优化select语句
冒泡排序
3升的杯子和5升的杯子量出4升的水
优缺点
工做地点选择
算法


阿里(一面)c++
数据库

问了在构造函数括号体内初始化和成员列表初始化有什么不一样?编程

成员列表的初始化顺序windows

拷贝构造函数都在什么状况下会被调用?

怎样防止拷贝构造函数被调用?

默认的拷贝构造函数是怎么实现的?(还有浅拷贝的问题)

虚函数的做用?

Public,protected,privatekeyword的做用?这3中继承各自是什么状况?

说一下红黑树

用过哪些STL的容器?说说各类容器的做用

说一下项目的东西

职业规划是什么?


豌豆荚 c++

一面:都是手写代码
1.反转链表
2.全排列
3.编辑距离
4.写生产者消费者+堵塞通知是怎样实现的


二面:继续写代码
1.简单自我介绍
2.大数据问题
3.中序前序输出树
4.多线程问题
5.总结下了个人问题,仍是很是NICE的一我的


三面:至今不知道这人是会技术仍是真不会
1.装傻,我不知道网络编程,你给我讲讲
2.继续装,这个我也不知道你给我讲讲(J2EE)
3.咱们来写个代码吧 上楼问题


搜狗 c++

1、问了项目。特别细节

2、合并n个数组,lc上题

3、找出n个数组一样的数

4、返回vector引用

5、红黑树咋实现的。。。(居然问这个)不懂

6C++写一下单例(static的。不惬意)

 

二面

问了一个,怎样找统一词库(给你一坨网页。给你一坨query

怎样创建一个搜索推荐词库(相似百度搜索如下有一条的)

三面

自我介绍

而后给一个数组怎样压缩(没想到好方法)

1亿多个字符串文件,找出中位数

而后简述一下你对cache失效时间的作法。


百度 c++

一、tcp和udp差异 
二、tcp怎么保证到达顺序有序 
三、说说拥塞控制 
四、说说虚地址 
五、讲一下你对hadoop生态系统的理解 
六、求树中,两个节点之间的最长距离。距离定义为通过节点数。 
七、翻转链表


百度 c++

1. 自我介绍

2. 介绍项目---介绍印象最深的(影响最大)---为啥印象最深(收获最大)

3. 算法

a) 给定N个数,找第二大的数(O(n)),依次隐身找第K大的数(最小最大堆)

b) N!尾部0的个数,比方5!=120那个返回1,详细解法见编程之美

c) 相似3 Sum这种题目,详细解法就是排序以后,用先后两个指针扫描。由此减小一维复杂度。详情请分析下leetcode之3 Sum

4. 大数据-推荐看csdn july秒杀大数据那节

5. 和经理瞎扯


腾讯地图 c++

一面:

1. 谈项目(20分钟)

2. 算法(手写,2题)

Ø 题目1:给定一个有序数组,如[1,2,3,4,5,7,9,10],将数组后半段置前。即循环右移若干位,变成如[7,9,10,1,2,3,4,5],怎样在变化后的数组中高速找到给定目标;

參考连接:http://www.cnblogs.com/davidluo/articles/1837561.html

(ps:不要试图去查找右移位数或尝试将数组分红两个有序段而后再作二分)。

Ø 题目2:给定一个数组,数组随意相邻的两个数的绝对值差的大小为1。给定一个目标t,怎样高速找到他的位置。

參考连接:http://blog.csdn.net/morewindows/article/details/10645269

二面

Ø 自我介绍(别再反复简历了,会被直接打断的。

。。)

Ø 项目简介(比較短)

Ø 我说的是C++/C。问了几个问题:

A. C和C++差异

B. C++多态、虚函数和面向对象的理解

C. C和C++是否能相互调用,externkeyword的理解

D. C++编译器内核(全然不懂。。。

E. 问了一个基类指针问题,实际上问的是基类和派生类内存分配问题(答得很是乱。。。

Ø 问了一个开放性问题,时间比較长:有这样一个系统,能反映实时路段的拥堵状况,即输入一个路段,系统返回一个该路段当前的拥堵情况信息。实现这样一个系统需要完毕哪些功能模块。某一模块的详细实现(流程,非算法)。问了很久,实在问不下去了,就说这题就到这里吧。

Ø 因为我简历写了实验室定位的项目。而且部门又是腾讯地图。因此问了一个问题:当前定位的主流方法有哪些,了解定位的趋势(说了百度、高德等等,忘了说腾讯。⊙﹏⊙b汗)


美团/蓝汛或者其余(记不清了)

问答题:

  1. Socket中三次握手的实现
  2. socket链接过程
  3. 堵塞与非堵塞、同步和异步
  4. selectepollepoll是怎样实现的(异步)
  5. 编译、连接的整个过程

预编译,编译,链接(动态连接、静态连接)

  1. 对于下面程序,C编译器和C++编译器的差异(C++编译器编译后加上输入输出參数信息,名字不一样)

Int f(int a){return 0;}

  1. 内存布局(程序段、堆、栈、.bss.data…
  2. 为何要有条件编译
  3. 内核申请内存的方法(kmalloc…很是多)
  4. ARP解析的全过程
  5. 什么是虚拟内存(磁盘上)
  6. 什么是原子操做。举例说明原子操做
  7. 多态
  8. Static的做用(函数内,全局变量)
  9. 进程栈和线程栈的差异
  10. 线程调度所涉及到的系统资源详细包含什么
  11. Inode结构体的做用
  12. 抢占式操做系统的缺点,怎样改善(低优先级永远没法运行,长时间不运行的低优先级把优先级调高)
  13. 为何进程调度比线程调度更消耗cpu(多线程共用程序段,不需要进行程序的各类装载,进程调度需要装载各类程序段(我是这么说的))

 

算法:

  1. 两个有序数组。组成一个排好序的数组(原数组有反复,新的数组不可反复)
  2. 链表是否有环
  3. 推断IP是否有效
  4. 大数加法
  5. 包括二维坐标中三个点的最小园
  6. 两个文件10G100G的交集(long类型),交集输出到文件C
  7. 二叉搜索树到双向链表
  8. abcd…”字符串中第M个出现N次的字符
  9. 1~1亿中所有的质数
  10. 字符串匹配、KMP、乱序的匹配

 

系统设计:

         100张票,很是多我的去抢这些票(好比12306)设计一个系统处理这个问题

 

智力题:

         1100的阶乘

         2、一个村子生男则中止,生女则直到生男才中止,问最后男女比例

         3100个囚犯的问题(经典问题)

相关文章
相关标签/搜索