小米云平台:
两道算法题:
- 在搜索时,搜索词会做为高亮词,在一段文本中找到高亮词并使用
<color></color>
括起来,
比如,搜索词“小米”,文本为“小米手机很好用”,结果显示为“'<color>小米</color>
手机很好用”。
注意:搜索词可能会有多个。 - 在一个整数数组中,找出出现次数大于一半的数。使用空间复杂度为O(1)的算法。
- 说说你的项目(我的是Spark数据分析项目,有问细节)
- 说说HashMap的实现原理
- Spark常用的map、reduce算子有哪些?
- 说说推荐系统
- 谈谈Hadoop和Spark的区别
- 说一下你对大数据的理解
- 有读过源码吗?有哪些?
- 你对大数据语言的理解
- 反问阶段
今日头条:
岗位是头条后台短视频开发。
电话面(40分钟):
- TCP和UDP的区别?
- UDP有哪些应用,微信视频通话是如何使用UDP实现?
- 如何使用UDP实现一个安全可靠,数据无丢失的视频通话。
- 说说你常用的linux的常用命令
- 如何常看进程的端口,CPU的使用率
- TCP三次握手
- http协议在客户端和服务端的区别
- socket服务器和客户端建立连接的实现过程
- java自旋锁
- git使用过吗?merge操作,还有一个命令忘了
- kafka的主要组件,实现原理,kafka的分区分配策略
- redis的zset类型,常用的命令,底层的实现原理(基于跳表实现)
- spring的依赖注入
- mysql的索引有哪些?
- B+树是什么
- 聚集索引和非聚集索引的区别
- mysql有哪些存储引擎,它们之间的区别
- 数据库事务的隔离级别
- 可重复读解决了什么问题?
- 脏读是什么?
- hadoop和spark的shuffle过程
- 一道简单的算法(有点忘了)
一面(视频面40分钟):
- linux文件系统的实现原理
- 如何通过访问磁盘中的数据传送到远程服务器,说出实现原理
- 操作系统的内存管理
- 磁盘调度算法
- 磁盘中的数据如何调度到内存当中
- 缓存和缓存区的区别
- Spring IOC,DI以及实现原理
- 说说动态代理
- 说说Spring容器的理解
- Spring如何解决循环依赖
- 需要往一个系统中不断的发送数据,如何设计?如果要想在这个系统中保留最新的100条数据,如何设计?如果基于数组的话时间复杂度O(1)怎么实现?
- 代码实现循环数组
二面(视频面:40分钟):
- 说一下你的学习经历
- 如何检测链表有环
- 有一个很长的数组,如何使用更高效的方式来检测只出现一次的元素
- TCP的拥塞控制是什么,怎么解决
- HashMap内部实现原理
- 如何理解hash函数
- 你用redis通常来做什么,redis的key过期策略
- 实现LRU算法
- 如何实现正太分布函数,均匀分布?
- 布隆过滤器
- 假设你是一个机长,飞机上的每一个用户可能会吃面或者饭,如何为每一个用户提供需求?如何转换为计算机的问题来解决
- 你的项目解决了什么问题(Spark数据分析项目)
- 最近在做什么事情
- 反问阶段
三面(最后一轮技术面,40分钟):
-
博客系统的项目介绍,实现了哪些功能。
-
了解排序算法吧,说说快排和归并排序。
-
给出一个数字矩阵,寻找一条最长上升路径,每个位置只能向上下左右四个位置移动。
Example:nums = [
[9,9,4],
[6,6,8],
[2,1,1]
]返回 4,最长上升路径是[1, 2, 6, 9].
知乎(大数据仓库岗位):
一面(视频面40分钟左右):
- 自我介绍
- spark streaming kafka的两种连接方式和区别
- spark streaming exactly only once语义
- UDAF UDF UDTF的区别,怎么实现(项目中有用到,所以问到了)
- spring aop
- 读取磁盘数据为什么会很慢,磁盘调度算法
- 进程调度算法
- 页面/内存抖动
- 操作系统的内存管理方式
- java抽象类和接口
- 平时做项目时遇到的线上故障,怎么解决的
- 有多个班级,求每个班级第二名和倒数第二名的分数差:(手写SQL)
1 56
1 78
2 89
2 56
3 45
二面(40分钟左右):
-
介绍你的项目
-
你最拿手的是什么
-
java并发编程
-
Linux下查看端口被哪个进程打开了
-
说一下linux的/proc目录
-
用过git吗?git修改暂存
-
ARP协议
-
imp,icmp协议
-
dos job.zhihu.com怎么通过DNS解析
-
http数据报的格式
-
get post 区别
-
restful 规范里除了 get 和 post 还有哪些
-
说一下java中的锁有哪些(互斥锁,共享锁,可重入锁,乐观锁,悲观锁/重量级锁,轻量级锁、偏向锁、自旋锁)
-
悲观锁和乐观锁的区别
-
synchronized 和 lock
-
说说CMS G1
-
Spring 拦截器和过滤器
-
scala的nil none null nothing
-
java的yield
-
python装饰器
-
GC算法
-
手写SQL
A BT
1 2
1 3
2 1
2 4
3 2
3 1
…
代表 A 列用户关注 B 列用户
求互相关注的用户
结果
1 2
1 3
2 1
3 1