学算法真的很痛苦,虽然大数据现在很火,但找到适合自己定位的职业也未尝不是一种合理选择。 投百度的经历非常坎坷,想写出来和大家分享一下,希望能带给和我一样准备不是非常充分(无对口项目、无实习经历、渣硕算法中途转Android开发)的同学一些信心。
百度一开始是想找学弟内推的,但是我投的比较早,赶上了内推的时间,但仍然走的是正式批的流程。做笔试题的时候,三道算法题只做出来第一道,之前经历了腾讯二面挂、字节笔试挂(补招的时候被捞一面挂)、京东笔试后没消息、美团简历挂,滴滴笔试完没消息(后来有面试并且收到了oc),觉得进面试拿到offer的希望也不大,所以就提前交卷,放弃挣扎了。最后意外收到了远程面试的邀请,运气到了拦也拦不住。
面试的时候除了算法题,其他被怼成弟弟,没想到面试官给过了,一天面完三面并且一周之后收到了oc,觉得自己非常的幸运,终于得到了大厂的认可(虽然是颗白菜)。这里建议网友如果有自己亮点的话,还是可以勇敢大胆的尝试一下大厂,毕竟除了实力之外,运气与机遇也占很大成分,遇到欣赏你的面试官,就会比较顺利。
献上百度的三面面经~
一面
1.项目介绍
2.智能指针, 分别解决什么问题, 如何实现(RAII)
3.TCP和UDP区别和联系
4.慢日志 -> explain -> SQL优化
把所有的索引结构说了一遍
线性->二分->Hash->BST->AVL->RB-Treee->B-Tree->B+Tree
时间复杂度 + 磁盘IO 两个角度
简述B+Tree结构, 设计优点.存储引擎
5.操作系统提供什么功能
几个子系统(进程管理/内存管理/文件/网络/设备 ), 分别实现什么功能
6.IO模型(虽然问的是IO多路复用, 但全说了一遍)
BIO / NIO / 信号驱动 / AIO / IO多路复用(select poll epoll), 简略的介绍一下原理;对比, 分别适合什么场景
7.中序和前序构建二叉树; N+1个数在1-N中, 找出重复元素O(1)空间,原数组const,
二面
1.项目介绍(对一个全栈项目比较感兴趣问的比较多, 不过没太大参考意义)
系统里设计时最重要的是什么(扯了高内聚低耦合), 项目难点(Server-Push, WSS, NGINX)
2.输入网址到看到页面的整个过程(尽可能的详细, 尽量把知道的协议都说一遍)
DNS(包括流程), UDP;HTTP(S), TCP, ARP, Ethernet, 分组交换;专业名词多来点, CDN, AJAX, DOM树
3.客户端卡顿可能是什么问题? 如何排查?
比较宽泛, 即可能是客户端的问题, 也可能是服务端的问题. 也可能是网络的问题, 也可能是处理器的问题, 等.
4.如果是服务端的问题, 如何考虑?
网络问题, 连接用户数过多, 导致每个人分配的带宽较少; 结束不活跃的连接, 减少长连接的使用, 调低超时时间.
处理器问题, 对应用户的线程迟迟无法占据CPU. 提高CPU性能, 或进行水平扩容等
中间件阻塞, 发生死锁, 或有慢查询存在.
5.知不知道crontab? 如何使用bash写一个脚本读取日志完成对IP的访问次数的排序
6.考虑转语言吗? 又扯了会前端 JavaScript
7.给出n对括号, 找出所有合法的组合
三面
1.全程怼项目
2.手写堆排序
3.手写归并算法
4.现在假设把这两个算法都封装成一个API,给你一个1PB的数据,但是内存只有2GB,设计一个工程调用这两个完成1PB数据的排序
有需要以上面试题答案的朋友,可以点击下方课程链接详细查看,想要《Android面试题汇总》的朋友也可以点击下方课程链接查看
https://edu.51cto.com/course/32703.html
第一章 Java方面
- Java基础部分
- Java集合
- Java多线程
- Java虚拟机
第二章 Android方面
- Android四大组件相关
- Android异步任务和消息机制
- Android UI绘制相关
- Android性能调优相关
- Android中的IPC
- Android系统SDK相关
- 第三方框架分析
- 综合技术
- 数据结构方面
- 设计模式
- 计算机网络方面
- Kotlin方面
第三章 音视频开发高频面试题
- 为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?
- 怎么做到直播秒开优化?
- 直方图在图像处理里面最重要的作用是什么?
- 数字图像滤波有哪些方法?
- 图像可以提取的特征有哪些?
- 衡量图像重建好坏的标准有哪些?怎样计算?
- ......
第四章 Flutter高频面试题
- Dart部分
- Flutter部分
第五章 算法高频面试题
- 如何高效寻找素数
- 如何运用二分查找算法
- 如何高效解决雨水问题
- 如何去除有序数组的重复元素
- 如何高效进行模幂运算
- 如何寻找最长回文子串
- ....
第六章 Andrio Framework方面
- 系统启动流程面试题解析
- Binder面试题解析
- Handler面试题解析
- AMS面试题解析
第七章 企业常见174道面试题
- SD卡
- Android的数据存储方式
- Broadcast Receiver
- sp频繁操作会有什么后果?sp能存多少数据?
- dvm与jvm的区别
- ART
- Activity的生命周期
- Application能不能启动Activity
- ....