校招面经(百度尚德京东便利蜂boss直聘头条小米)
一直都在牛客观摩大佬们的面经,是时候回馈一波了,由于有些面试时间太久,故只能给出记得住的;
秋招:
百度(测试开发实习生):
一面: 1.一个单向链表,给出头结点,找出倒数第N个结点,要求O(N)的时间复杂度;
2.最大子数组问题(要求时间复杂度最佳);
3.硬币找零问题(要求时间复杂度最佳);
4.说一下常用设计模式;
5.上亿数量的链接,如何找出点击量排名前十的链接?
6.聊项目。
二面:1.如何判断一个单向链表存在回路?
2.说一下分布式集群的概念。
百度(安卓开发工程师):
一面:1.分别说一下Android的四大组件;
2.项目中遇到的难点(百度地图API资源冲突,以及如何实现后台录像)
3.进程与线程的区别;
4.说一下handle的作用;
5.手写快排与冒泡排序;
二面:1.String与StringBuilder,StringBuffer的区别?
2.HashMap原理?
3.如果一个APP在下拉加载更多时出现卡顿,如何解决?
4.如何判断一个单向链表存在回路?
5.如何判断两个单向链表是否会汇入同一链表?
6.写层序遍历二叉树代码;
7.二叉搜索树的特点;
8.一个数组,里面的元素都是成对的,只有一个元素是单个的,如何找出这个单个的元素(要求时间复杂度最佳)?
9.一个有序数组,找一个元素在数组中出现的次数;
10.给一个单向链表的头指针和一个节点指针,删除该节点,要求时间复杂度为O(1)?
尚德(Java开发工程师):
一面:1.手写Java中的Integer.parseInt()方法(考查代码鲁棒性);
2.一次面试来了N个人,一直x1与y1是同校同学,x2与y2是同校同学,x3与y3是同校同学,...,写代码求出面试者共来自几个学校?
3.聊项目;
4.说说redis;
二面:1.一个数组,里面的元素都是成对的,只有一个元素是单个的,如何找出这个单个的元素(要求时间复杂度最佳)?
2.一个包含上千万数据的集合,找出第一个集合中只出现一次的数据,额外空间只有20M?
3.一个订单,被多个用户同时抢单,如何解决?
4.假如一天产生上百万订单,数据如何存储与查询?
三面:1.一个自定义宫格的矩阵,一个人从左上角走到右下角要走几步(一步一个格子)?
2.说说单例模式;
3.nginx实现负载均衡的方式?
京东(Java开发工程师):
一面:1.说说自己的项目;
2.一个订单,被多个用户同时抢单,如何解决?
3.margin与padding的区别?
4.Mybatis中的$与#有什么区别?
5.说一说Spring容器;
6.说一说Spring AOP;
二面:1.详细讲解Spring AOP;
2.js如何获取元素?
3.说一说String为什么要用final定义?
便利蜂(Java开发工程师):
一面:1.如何找出数组中数量最多的数(要求时间复杂度最佳)?
2.如何找出数组中数量超过一半的数(要求时间复杂度最佳)?
3.如何实现轮询?
4.数据库索引为何要用B+树?
5.为什么用B+树就会快(硬盘底层问题)?
6.如何使用数据库索引?
二面:1.HashMap的实现方式?
2.HashMap为什么要用链接法解决冲突,为什么不用开放定址法?
三面:对便利蜂的认识,薪资等等。
boss直聘:
一面:面试官暂时有事,直接做笔试题
1.在不修改线程run方法的情况下,如何让线程按指定顺序执行?
(其余不记得了)
二面:1.说说Hadoop?
2.说说消息队列;
3.说说阻塞队列;
4.MapReduce的原理是什么?
5.简单说说ElasticSearch;
三面:谈人生,聊薪资;
头条(后台开发):
一面:1.如何解决IOS与Android的不兼容问题?
2.蛇形打印二叉树,按层打印,黑板上写代码;
3.求一个数组每个元素右边第一个比它大的元素(要求时间复杂度最佳),黑板上写代码;
4.http与https的区别?
二面:1.TCP与UDP的区别?
2.HashMap的实现原理,有哪几种遍历方式?
3.十万个无序数字,找出前1000个,黑板上写代码(要求时间复杂度最佳);
4.Android四大组件;
三面:1.讲讲自己印象最深刻的算法题,写一遍;
#面经##校招#
秋招:
百度(测试开发实习生):
一面: 1.一个单向链表,给出头结点,找出倒数第N个结点,要求O(N)的时间复杂度;
2.最大子数组问题(要求时间复杂度最佳);
3.硬币找零问题(要求时间复杂度最佳);
4.说一下常用设计模式;
5.上亿数量的链接,如何找出点击量排名前十的链接?
6.聊项目。
二面:1.如何判断一个单向链表存在回路?
2.说一下分布式集群的概念。
百度(安卓开发工程师):
一面:1.分别说一下Android的四大组件;
2.项目中遇到的难点(百度地图API资源冲突,以及如何实现后台录像)
3.进程与线程的区别;
4.说一下handle的作用;
5.手写快排与冒泡排序;
二面:1.String与StringBuilder,StringBuffer的区别?
2.HashMap原理?
3.如果一个APP在下拉加载更多时出现卡顿,如何解决?
4.如何判断一个单向链表存在回路?
5.如何判断两个单向链表是否会汇入同一链表?
6.写层序遍历二叉树代码;
7.二叉搜索树的特点;
8.一个数组,里面的元素都是成对的,只有一个元素是单个的,如何找出这个单个的元素(要求时间复杂度最佳)?
9.一个有序数组,找一个元素在数组中出现的次数;
10.给一个单向链表的头指针和一个节点指针,删除该节点,要求时间复杂度为O(1)?
尚德(Java开发工程师):
一面:1.手写Java中的Integer.parseInt()方法(考查代码鲁棒性);
2.一次面试来了N个人,一直x1与y1是同校同学,x2与y2是同校同学,x3与y3是同校同学,...,写代码求出面试者共来自几个学校?
3.聊项目;
4.说说redis;
二面:1.一个数组,里面的元素都是成对的,只有一个元素是单个的,如何找出这个单个的元素(要求时间复杂度最佳)?
2.一个包含上千万数据的集合,找出第一个集合中只出现一次的数据,额外空间只有20M?
3.一个订单,被多个用户同时抢单,如何解决?
4.假如一天产生上百万订单,数据如何存储与查询?
三面:1.一个自定义宫格的矩阵,一个人从左上角走到右下角要走几步(一步一个格子)?
2.说说单例模式;
3.nginx实现负载均衡的方式?
京东(Java开发工程师):
一面:1.说说自己的项目;
2.一个订单,被多个用户同时抢单,如何解决?
3.margin与padding的区别?
4.Mybatis中的$与#有什么区别?
5.说一说Spring容器;
6.说一说Spring AOP;
二面:1.详细讲解Spring AOP;
2.js如何获取元素?
3.说一说String为什么要用final定义?
便利蜂(Java开发工程师):
一面:1.如何找出数组中数量最多的数(要求时间复杂度最佳)?
2.如何找出数组中数量超过一半的数(要求时间复杂度最佳)?
3.如何实现轮询?
4.数据库索引为何要用B+树?
5.为什么用B+树就会快(硬盘底层问题)?
6.如何使用数据库索引?
二面:1.HashMap的实现方式?
2.HashMap为什么要用链接法解决冲突,为什么不用开放定址法?
三面:对便利蜂的认识,薪资等等。
boss直聘:
一面:面试官暂时有事,直接做笔试题
1.在不修改线程run方法的情况下,如何让线程按指定顺序执行?
(其余不记得了)
二面:1.说说Hadoop?
2.说说消息队列;
3.说说阻塞队列;
4.MapReduce的原理是什么?
5.简单说说ElasticSearch;
三面:谈人生,聊薪资;
头条(后台开发):
一面:1.如何解决IOS与Android的不兼容问题?
2.蛇形打印二叉树,按层打印,黑板上写代码;
3.求一个数组每个元素右边第一个比它大的元素(要求时间复杂度最佳),黑板上写代码;
4.http与https的区别?
二面:1.TCP与UDP的区别?
2.HashMap的实现原理,有哪几种遍历方式?
3.十万个无序数字,找出前1000个,黑板上写代码(要求时间复杂度最佳);
4.Android四大组件;
三面:1.讲讲自己印象最深刻的算法题,写一遍;
2.讲讲实习经历说了什么;
小米(后台开发):
一面:1.目前小米应用商店有两个用户,他俩分别下载了若干应用,求他们所下载应用的交集与并集,要求时间复杂度最佳;
2.目前小米应用商店有上百万以上的应用,在某一随机的时间点,只有一个能容纳20个应用ID的空间与一个包含所有应用ID和下载量的集合,找出下载量前20的应用;
3.一个文件,其中内容以换行与空格作为每个单词的分隔,手写代码,将单词按单词的出现次数排序,时间复杂度越快越好;
如果用MapReduce解决该问题,过程是怎样的?
二面:1.介绍一下实习的项目,聊到了Redis,ElasticSearch,HBase,Hive,nginx,SSM等技术与框架?
2.画出实习项目的基础架构图,并逐个说明其发挥的作用,为什么要如此架构;
3.二叉树前中后序遍历,递归与非递归方法,手写代码;
4.说说想做哪个方向的开发;
5.说说职业规划,说白了就是短期内会不会跳槽;
相关算法与技术分享欢迎关注我的博客园:
总共就这么多,每个公司题目数量都差不多,有部分记不起来了,希望给正在奋战的朋友带去帮助。#面经##校招#