mobike
- 一个5层的二叉树最多有多少节点?
- 时针转一圈,分针和时针会重合几次?
- 盒子里有3种不同颜色的球,每次拿出一个后放回再拿,三次拿到的球都不同的概率?
- 一个服务一天有300w的访问量,有80%集中在全天的20%时间,假设单台机器的QPS是50,为了服务稳定运行,需要几台机器?
- 8 8 24 120 ___
- 50的阶乘末尾有多少0?
- 在一颗二叉查找树中,找到与数字m最相近的值。
- 有两个整型数组,每一个元素分别是一个数字的每一个数位,例如
[1,2,3,4,5,6],即表示数字123456,完成函数sub,功能为两数相减。
int[] sub(int[] src , int[] dst) ;
(java题目,用C/C++做时需要数组长度,可以假设长度)
- 警察叔叔有一个待查寻身份证号码集合m,现有n个嫌疑人,需要从在待查寻身份证号集合中查看是否有这n个嫌疑人,来确定罪犯。m和n都是亿级别的。如何查询,并给出时间复杂度和空间复杂度。
- 设计一个支持全球的短连接服务... 记不太清了,没接触过这类问题。
- 详细说一说你的简历上的项目一,架构和功能。
... 时间长忘记其它问题了没记录下来。
sogou
(以下为不定项选择)
- 哪些函数是多线程不安全的?1. inet_ntoa 2.rand 3. strtok 4. localtime
- 已知一颗二叉树前序遍历后序遍历分别是cedba,dabec,那么中序遍历结果是怎样。
- 下面函数的时间复杂度和优化后的时间复杂度是:
int sum (int x ) {
int sum = 0;
for ( int i = 1 ; i < n ; i*=2 ) {
for ( int j = i/2 ; j < i ; j ++ ) {
sum += j;
}
}
}
HTTP协议,请求信息分为请求行、请求头、消息体三部分,描述错误的是:
1)请求的GET参数放在请求头
2)POST参数存放在消息体
3)COOKIE信息存放在请求头
4)消息体、请求头长度分别通过请求头的Content-length 和 Header-length 指定。哪些方案是通过降低处理延时来提高系统吞吐的:
1)采用多级流水
2)串行改并行
3)增加处理线程数
4)利用cache缓存热门数据这段程序输出怎样:1. 1234567 2. 12345678 3. 段错误 4. 无法确定
char dest[8] ;
char *src = "1234567890";
strncpy(dest , src , sizeof(dest)) ;
printf("%s\n",dest) ;
对于线程安全(thread-safe)和可重入(reentrant)描述正确的是:
1)可重入函数一定是线程安全的函数
2)线程安全函数一定是可重入的
3)如果一个函数中用到了全局变量、静态变量那么它不是线程安全的,也不是可重入的
4)在访问全局或静态变量时使用互斥锁或者信号量等方式加锁,则可以使它变成线程安全的,同时也是可重入的。linux平台关于c++程序链接的说法正确的是:
1)一个静态库中不能包含两个同名全局函数的定义
2)一个动态库中不能包含两个同名全局函数的定义
3)如果两个静态库都包含一个同名全局函数,它们不能同时被链接
4)如果两个动态库都包含一个同名全局函数,它们不能同时被链接在一个有序的整数数组中,有些元素重复出现。写一个查找函数,找出指定元素第一次出现的位置,如果不存在,返回-1.
10.编写程序实现一个数字矩阵的环形打印。
数字矩阵:
1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|
6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 |
- 详细说一下你的两个项目。
- 用过哪些shell命令,说说grep、sed、awk。
- cookie是什么?能干什么用?获取一个消息是PUSH还是主动PULL?
- 项目里面定时是怎么实现的?怎么简单实现管理多个定时?高效的怎么实现?
- 可重入是什么意思?什么是静态库,动态库、区别?
- 怎么理解栈帧的?core文件里面是什么?如何调试段错误等错误?
- TCP三次握手、四次挥手,TIMEWAIT是哪端出现的,MSL是什么?为什么TIMEWAIT会持续2MSL?
- 怎么判断一个服务是否在线?已建立的链接突然一端崩溃,正常一端再写会发生什么?该怎么处理?
- 什么是阻塞/非阻塞,同步/异步。
- 用过的IPC有哪些。
- select和epoll的作用,区别有什么?
- 在一组数中找到前k小的数。如果是找第k小呢?
- 面向对象的特点都有哪些?多态的好处?
回忆的内容大概是这么多... ...
mi
- STL具体实现熟悉么?写一个Queue/Stack。
- 找前k小的数。使用大顶堆时候,假如内存中只能放下k/4个元素,如何处理?
- TCP四次挥手。CLOSE_WAIT大量存在时候原因有可能是什么?
- select和epoll的区别?
- 物品有价值,有重量,放一个有容量上限的背包里,怎么放价值最高?(背包问题。。。动归)
- 设计一个支持50w并发量的服务端,该如何设计。
- 写程序实现打印一个集合的所有子集。
- 写程序判断链表是否有环,找出入口。
- 写程序,字符串匹配,判断待匹配字符串的子串在目标字符串中出现的次数。
- 详细说一下第一个项目(分布式cache),你做了哪些事情。
- 假设上线一个抽奖服务,用户2kw,每个用户记录的信息约256字节峰值qps在80w/s左右,怎么部署服务。(其实是考需要哪种(cache)服务模型(容量淘汰/过期淘汰等),是否需要持久化,峰值时需要部署多少组服务等问题)
- 详细说一下skiplist是什么,怎么查找的,特点。
- accept发生在三次握手什么时候,并发和并行的区别。
- MTU是什么?MTU大小由什么决定?
- 如何衡量一台机器的性能?
- 有100G的整形数字,在其中查找是否存在某个整形数,如何做。
- 多线程服务,线程数应该设置多少个。
- 一个多线程服务,每一次请求需要消耗CPU 1ms,I/O 5ms ,请问这个服务应该设置的线程数是多少个。
- top中的load指标是什么意思?
大概是这么多... ...
mobike最早,记不怎么清楚了。按照时间顺序写的。供各位路过的朋友参考,一年工作经验的社招笔试面试题,应该说和校招时候的难度差不很大吧。