一面
编程题
求二叉树的高度,递归和迭代两种方式
二维坐标,只能往右或者往下走,问从左上走到右下的方案数
用rand11实现rand100
基础部门比较常规,没啥需要特殊记的:
操作系统问了进程通信,线程同步,死锁,内存分区,epoll相关
网络问了三次握手和子网掩码
数据库问了隔离级别和对应的问题(脏读,幻读,不可重复读)
唯一比较特殊的是问了我熟悉的设计模式,还有开闭原则是什么意思
二面
纯算法面:
输入n,计算2^n次方,n可能很大(也就是结果会超出long long)
两个有序数组,求其中位数,也就是leetcode 4
大数据文件中的中位数(看我微信实习一面,一模一样),只需要思路
数据流的中位数 leetcode295,只需要思路
三面
纯场景题:
除夕有个抢红包活动,需要提前做了任务的人才有资格参与,参与人数控制在最多1亿人。有资格参与的人在活动开启时可以开始抢红包但不是每个人都能抢到(这里面试官没说清楚概率),且就算抢到红包也不能超过10元。
问后端怎么设计,需要考虑到高并发,容灾(服务器崩溃),成本(尽可能压缩服务器数量)