signed

QiShunwang

“诚信为本、客户至上”

大厂面试资料(头条篇)

2021/6/3 17:09:06   来源:

6.1.0 5个人去一个海岛寻宝,最后一共找到了 100枚金币。他们约定了一个分配方案。

6.1.1 给你一个有序整数数组,数组中的数可以是正数、负数、零,请实现一个函数,这个 函数返回一个整数:返回这个数组所有数的平方值中有多少种不同的取值。

6.1.2 一个环有10个节点,编号0-9。从0点出发,走N步又能回到0点,共有多少种走法?

6.1.3 一个乱序数组,求第K大的数。排序方式使用字典序。

6.1.4 一棵二叉树,求最大通路长度。(即最大左右子树高度之和)

6.1.5 进程和线程的区别,使用线程真的能节省时间?

6.1.6 go协程的调度方式,使用协程真的能节省时间?

6.1.7 水平触发边沿触发的区别?在边沿触发下,一个socket有500的数据,已读取200然 后不再处理,是不是剩下的300就永远无法读取?

有函数如下,输入1,返回什么?

设计http协议,A端发送AAAA,至少让B端知道AAAA已发送完成。

流量总入口为api_gateway, api_gateway挂了会导致全部挂挂,用什么机制增大可用

6.2.1 mysql为什么要用b+树,不用平衡二叉树做索引结构?

6.2.2 创建数据库索引应该怎么考虑?

6.2.3 使用int做primary key和使用string有什么优劣?

6.2.4 数据库分表的方法?

6.2.5 表结构,订单纪录如下,写一个语句,求卖的最好的top 10 product_id?

6.2.6 微服务,A服务请求B服务B1接口,B1接口又请求A服务A2接口。会不会有问题?

6.2.7 不使用高级工具,只使用Linux自带的工具,你会如何debug?

6.2.8 如何预估一个mysql语句的性能?

6.2.9 go函数中,返回值未命名,发生了 panic,但是在函数内recover 了。函数返回什么值?

6.3.0 socket中,在tcp协议层面,数据分为10个报文发放。1-7次很顺利,第8次丢失。这 次通信一定失败吗?如果第8次数据会重发,那在接收端是不是:先读取到1-7次的数据, 然后读取到8-10次的数据?还是9-10次的数据会先到达?

6.3.1 free -h, buffers 和 cached 有什么不同?

6.3.2 后台进程有什么特点,如果要你设计一个进程是后台进程,你会考虑什么?

6.3.3 僵尸进程是什么,如果产生一个僵尸进程,如何査找僵尸进程?

6.3.4 孤儿进程是什么?

6.3.5 一个进程有20个线程,在某个线程中调用fork,新的进程会有20个线程吗?

6.3.6 tcp/ip流量控制和拥塞控制?

6.3.7 301/302有什么区别?应用上有什么异同。?

6.3.8 50X相关错误码的内涵是什么?

6.3.9 close wait和time wait是什么?如何排査?有什么意义?

6.4.0 http req和resp的中数据有哪些?

6.4.1 什么是连接的半打开,半关闭状态?

6.4.2 假如一个业务依赖单点redis,此redis故障将导致业务不可用,如何改进?

6.4.3 redis sharding 有哪些做法?

6.4.4 当大量数据要求用redis保存,单机单点难以满足需要,设计(换寻找)一个负载均衡的方案 ?

6.4.5 当redis采用hash做sharding,现在有8个节点,负载方案是pos = hash(key) % 8,然 后保存在pos节点上。这样做有什么好处坏处?当8个节点要扩充到10个节点,应该怎么 办?有什么更方便扩充的方案吗?(一致性hash, presharding)

6.4.6 如何保证redis和数据库数据的一致性。比如用户名既保存在数据库,又保存在redis 做缓存。有如下操作 update_db(username); update_redis(username)。但是执行 update_db 后故障,update_redis没有执行。有什么简单办法解决这个问题。