第一面没问算法,直接问项目,首先我解释了几个课程设计,后来按着机器学习一直问。。没怎么回答好。。后来说了一下简历写的个小游戏。html
二面开始问我迷宫查找怎么实现的,就是深度优先和广度优先的搜索。问了俩算法,比较简单:一个是树的层序遍历,另外一个求通过root的两个树节点之间的路径长度。手写代码,讲思路和测试用例。另外引伸了一下求两个节点的不通过root的最短路径长度。我说要求最近公共祖先,可是代码还没想出来咋写呢,时间也差很少,就结束了二面。java
三面居然问一些语言特性。。java hashmap 和 hashtable的区别(线程安全)。。c++ virtual, 析构函数,重载重写。按着线程安全的问题问啊问。。我就知道互斥锁。。最后给看了一个c语言strtoken函数的定义,而后白板实现。自我感受这个函数写的差很少,就是前面一些语言特性没回答好。。 对了,由于strtoken 不是线程安全的,面试官又问我该咋办。。我又只能回答说加锁。。。。。。mysql
微软的消息等了过久了!!备胎一个月了,苏州那边打电话问我能不能去苏州实习。。而后说不太能够。。毕竟学校在北京。。而后GG了。。如今后悔,不应为了怕导师而拒绝微软啊,校招的时候实习经历仍是比较有份量的。linux
1 最近公共祖先。 若是有parent 指针, 至关于求两个链表的交点了。若是是普通二叉树就递归判断。 当初没好好刷题呀。leetcode.com/problems/lo…c++
2 旋转数组二分查找git
最后小米实习去了一周。迫于导师淫威, 怕怕地辞职了。太怂了。。并且等我辞职后居然放假了而且导师也对咱们找工做放水了!! 又心塞!!!程序员
一面挂。 问求第k大个数字。用快排写的。 写的比较慢。 又问项目。感受没亮点。 挂!github
二面: 1) 智力题, 一个密码锁有6个数字, 求不当心拿反了仍是正常数字的几率;求不当心拿反了和拿正的数字同样的几率 2)算法题,一个数组 1-n 中缺失了一个数字。查找到那个数。 我用二分查找作的。 3)面试官感受不懂机器学习, 让我讲了下svm, 给她说了下原理。web
三面:部门经理,有点傲气。。喜欢打断人说话,问职业规划之类的(职业规划真的会有不少人问到,好好准备)。问有没有男友(懵逼),问对头条和百度的见解。 问遇到困难怎么解决,我一不注意说Google一下。。而后立刻意识到啊这是在百度啊。。接着添上 或者百度一下。。。面试
最终说两周给消息, 也没给。挂了!!/(ㄒoㄒ)/~~
面试真的靠缘分和运气吗,感受水过的。
一面问,写个atoi吧,考虑好各类状况。 我就写。。刚写了两分钟,面试官忍不住了,你咋写这么多。。。我说我得考虑充分啊,他说别写了讲讲吧。。。就讲了下。而后又问,编辑距离知道吗?我说动态规划,刚要写,而后他说好,知道了不用写。而后问了下svm,gbdt 的东西, 就过了
二面说,山东人啊。。360好多山东人呢。。哎你这项目都是工程的呀,咋来找算法,我说由于热爱 = =(心里:我就是试试看啊)。 没写算法题,聊了聊项目,问svm 折页损失公式,并问L2正则做用。居然过了(黑人问号??)
三面hr: 自我介绍,优势,对360的了解, 对人工智能研究院的了解。。。
目前状态是进入offer(备胎)池, 听说360以往也是这样的状况,会有不少人选入备胎,有效期到年末。听说有师姐在备胎好几个月后收到了360offer...因此你们保险起见,不要以为360三面过了就稳了。。基本当没有这个备胎。。
一面:因为我简历写的熟悉java, c++略懂,他就问了下简单的c++的语言特性, const 关键字。面试官很nice,告诉我别紧张。。就想了解一下我会的东西。而后问了排序,按某种分类把排序算法分类一下。我按时间复杂度分的。后来又问了下各个排序的原理讲了一下。 算法题:记不太清了,就是一个二叉树遍历的变形,输出二叉树中路径尾节点能被5整除的路径?写了个递归的,又问非递归的。。大体说了下。他问,是否是刷题挺多。。我说,你们都会刷一些吧。。。问用linux开发吗?我说写过c/c++ makefile。 面试官就噼里啪啦记录。
二面:shell 命令。。不熟, 问怎么用shell脚本写内存监控,直接说不会。 后来又让我用shell查找统计一个文件里的几行记录,我说我用sql吧。。。。面试官无奈地点头了。后来问 linux 读文件的时候内核发生了啥?而后问了selector, poll epoll... 当时都没看(如今也没来得及看 = =), 就记得selector 监控多个io通道啥的,大体说了下。 算法题: minstack. 参见剑指offer,可是第二个栈不用每次都push min
三面:开放题。 问了搜索相关的。 问好多url,里面可能有好多重读字段怎么存储。开始说前缀树,想了想,说先按照? / 分词, 存储倒排索引。面试官莫名以为我不错,但我本身感受二面三面答的都很差。
最后百度提早批只有这一个部门过了,而后百度提早批通常是面试经过后经理或者hr要你身份证号,通知你9月初笔试。笔试经过后10天左右告知。9月底会发正式offer,告知薪资之类的。
int add(int num1, int num2)
{
if (0 == num2)
return num1;
int sum = num1 ^ num2;
int carry = (num1 & num2) << 1;
return add(sum, carry);
}复制代码
3) 二叉树中序遍历,递归 非递归都写了遍。。。
二面, 问项目,而后看到我有个模拟挖矿(比特币相关的东西)的小应用,和金融比较相关,就简单介绍了下。觉得我懂区块链之类的,然而并无。算法题!链表带random指针深拷贝的问题!! 我居然忘记咋作了,一直在想不用hash表的那种算法,最后面试官提示能够用额外的数据结构,就说了用hash表存原节点和新节点的关系。完整答案:www.cnblogs.com/chrischennx…
三面 人生理想,职业规划,性格优势。 而后说我不大自信。之后面试要自信
5个笔试题,现场笔试后再面试。
笔试
1 数组中超过一半的数。 blog.csdn.net/lskyne/arti…
2 括号是否是合法匹配, 用了个栈
3 m个连续珠子有n个不一样的颜色,求最小包含n个颜色的连续珠子长度 blog.csdn.net/zhccl/artic…
4 一堆ip访问记录(ip, 时间),若是10分钟内连续访问超过1024次就是非法的,找出这些非法ip
5 判断循环依赖。(图里是否有环,应该是用拓扑排序)
一面: 线程有没有本身的独立资源? 三次握手过程。 b+树 data存在哪?(叶子节点),叶子节点有联系吗?(有,链表相连的形式)为啥?(方便遍历,区间查找) 你以为笔试题能答多少分?我说七八十吧,他说差很少。说他以为没啥问题了, 问了解链家吗,我说。。租房卖房的吧。。。北京好多门头店啊。。。最后又说链家技术不错。。
二面: 鄙视个人项目,以为太简单。。 哎, 我也知道啊。。我也很绝望啊。。。写了个sql,问职业规划,我说作搜索相关的吧。。他说链家没有。。我说比较偏算法的研发吧,他说这说法好虚啊。。。最后说 嗯你等一下我考虑一下吧。。。而后过几分钟给我挂了。 感受职业规划真的挺重要的,虽然以后不必定按本身说的作,但仍是要大体有个规划,让面试官以为 你这我的是对本身负责的。 因此我职业规划是什么,我研究生上的这么杂我也很绝望啊。。。。
算法岗, 不match. 看我简历后,说他们主要是搞深度学习,象征性地问了几个算法题。记得一个题大约是:
www.cnblogs.com/huangwei102…
数据库索引 用了什么数据结构, 和红黑树区别
hashMap 初始化多大, 何时从新扩容
两个链表判断是否有交点
翻转字符串 in-place "how are you" 转成 “you are how”
三次握手; 四次挥手何时是在 time-wait 状态
http 协议组成部分
jvm 垃圾回收, cms 收集器
elatic search 索引合并?
线程 interrupted 是进入什么状态
读写锁 : 读写锁特色:
1)多个读者能够同时进行读
2)写者必须互斥(只容许一个写者写,也不能读者写者同时进行)
3)写者优先于读者(一旦有写者,则后续读者必须等待,唤醒时优先考虑写者)
jvm OM 异常 一般是怎么个状况, 如何调优。。。
而后电话面试完就再没消息了。。
啥也没问基本。。聊项目也有没有引伸出一些知识点
1 给一个java 程序,说出执行期间,jvm各个内存存储数据的变化,包括各个变量存储在哪,对象构造的过程,程序计数器,栈的压栈返回过程。而后评价我答的不太具体,只是说了各个数据的存储区域。
2 申请了不少 对象, 会出现什么问题? 各个内存区域都有可能由于什么而出现问题?
3 垃圾回收算法
说了eden和 survivor 后, 让具体描述那个 8:1:1 怎么复制回收的
4 判断html 字符串是否合法, 给合法的标签列表, 要合法不能不一样的标签相互交错。
5 account (aid, money)
设计 addMoney, subMoney transMoney(Account a, int money) 的线程安全的算法。
我写了以后,忘记考虑money的正负 是否溢出的状况,把我鄙视一番。 还有转帐的方法, 两个对象都加锁,会形成死锁产生, 他问我咋办,我说一次都申请了,写的代码成了整个串行的了。 最后才想到 按顺序申请,能够每次先给id小的account对象加锁, 然而他已经对我完全失望。其实感受一开始就对我没抱但愿的样子。
一面: (1)大文件100亿个数字,求前m大的数 (2)进程和线程区别,啥时候应该用多线程,啥时候用多进程。 线程的好处? 协程?www.cnblogs.com/lxmhhy/p/60… (3)索引为什么用b树 不用二叉树 database.51cto.com/art/201504/…索引很大须要存到磁盘,高度小了,须要的io操做少(4)两个有序数组,求第k个数, 说了双指针的作法,O(k), 面试官让想更优的, 没想出来。应该是用二分查找的方法。 bookshadow.com/weblog/2015… (5) 看什么技术类的书籍,讲讲jvm里都讲了啥。
二面:(1) 面试官脾气很好。。问了下数据库事物隔离,一开始说不大了解,忽然想到以前看了脏读,不可重复读,幻读。。说了以后面试官也没深刻问。http://www.cnblogs.com/zhoujinyi/p/3437475.html 而后问mysql的一些问题,为什么通常不用select *, 要用select 须要的字段呢?尝试回答了,不大对,面试官就解释了一遍。。我忘了他讲的啥了。。。好像以前还被问到 limit 分页的数字大为啥效率会变低。。数据库不太了解。
三面 :(1) 问了jvm的, gc, 怎么判断对象存活。 volatile(两个特性) sychronized: 修饰一个类,其做用的范围是synchronized后面括号括起来的部分, 做用的对象是这个类的全部对象。 修饰一个方法,被修饰的方法称为同步方法,其做用的范围是整个方法, 做用的对象是调用这个方法的对象; 修改一个静态的方法,其做用的范围是整个静态方法, 做用的对象是这个类的全部对象;修饰一个代码块,被修饰的代码块称为同步语句块,其做用的范围是大括号{}括起来的代码, 做用的对象是调用这个代码块的对象; wiki.jikexueyuan.com/project/jav… (2)实现LRU O(1) 可是面试官描述得有问题,说使最近用次数最少的blabla..,我说你说的是LFU啊,不是LRU. 他说差很少!!??说了LRU的数据结构,他又说加过时时间怎么整。。 我只能想到O(n)遍历删除的。(3)后来写了求树中两个子节点直接最长距离的。。差点没写上来。 一开始想对每一个节点求左右高度,有重复计算,后来写代码时,就想到在递归中能够求一遍就行了。写好了面试官问了下边界状况,检查了下没问题。。而后说今天面试结束了,平常提问环节。。 瞎问了点问题。。
最后面头条的感觉:感受面了假的头条。。 头条实习一面挂的阴影还在, 咋还能给我终面过了。面试真是运气+眼缘啊。忐忑。 hr说九月中下旬给通知,也还不必定给offer。
一面: 瞎扯项目, 算法题: 二维数组中,每一个元素有个数字,求某一个点到任意一点的sum和(只能向右或者向下) dp记录到每一个点的sum。 第二个题, 求一个字符串,包含一个字符集的最短长度。网易有道一面题
二面: 项目,讲了java 内存。进程线程。 26进制转换。 一堆ip中,查找一个ip是否存在。
最后问能不能实习。好多公司都但愿是先去实习。最后微信问了面试官结果,说是经过,再给hr报备。
最后总结: 目前9月初,校招还未正式开始,基本都是内推的。不知道校招会是什么状况,可是如今来看,内推已占坑不少了,你们仍是早开始早准备。前期我是海投的,包括一些小点的公司,面试了不少次,无数次的自我介绍、项目介绍。 注意一下,有的公司校招和内推不影响的,内推挂了能够再参加校招,而头疼是内推挂了,校招也不能参加了。通常来讲,部门之间的内推面试不冲突的,好比百度能够面试好多部门。另外除了公司官网,要常常逛逛 北邮人 牛客等,多关注一些内推公众号, 多发现招聘消息,多点机会!