自我介绍一下,我是18年本科毕业的,专业是机械设计制造及其自动化,19年10月份裸辞学习python开发,20年5月份入职上家公司从事python开发,今年4月份准备离职,重新找工作。
4月份陆续面了几个公司吧,想去大厂的,结果都挂了。主要原因还是算法题写不出来吧,不知道为什么,一现场写题脑子就抽抽了……
这里主要列一些我想起来的技术问题。一些非技术问题,比如如何学习的、项目中遇到过什么困难,这里就不列举了。
字节跳动-后端工程师(一面挂)
-
Redis为什么快
-
Redis中zset底层实现,zset各种操作的时间复杂度
-
kafka为什么快?kafka在设计上如何保证消息被消费一次且仅消费一次
-
InnoDB底层结构,B+树特点,哪些情况不走索引,!=会不会走索引。一个表,表结构是用户id、登录时间、登出时间,这个登录时间和登出时间适不适合建索引
-
ElasticSearch存储一条数据的过程
-
算法:
1.某个有重复元素的排序数组,求某个值第一次出现的下标,时间复杂度要求O(logn)
2.合并区间,力扣56
一点资讯-后端开发(三面过)
-
B+树特点,手算3层B+树可以存储多少条数据,为什么B+树非叶子节点只存索引指针?
-
InnoDB如何解决幻读的
-
C语言string类型为什么不是二进制安全的,Redis string类型为什么是安全的
-
缓存击穿、穿透、雪崩概念及解决办法
-
数据库与缓存一致性
-
分布式锁
-
Redis string和hash区别
-
使用Redis实现排行榜功能,细节
-
Kafka如何保证消息不重复、不丢失
-
编写shell脚本,统计一段时间的访问ip,然后统计访问量前10的ip
-
top k问题
-
HTTPS握手过程
-
Java线程与Goroutine区别
-
GMP模型
-
设计一个高并发系统,需要从哪些方面去考虑
-
你知道的排序算法的时间复杂度极限?有比O(nlogn)更快的算法吗?
-
简单的算法
1.手写快排
老虎证券-Python开发(二面无音讯,这个我感觉是答得最好的,不知道为啥……)
-
写个单例模式,代码会有什么问题,那如何保证线程安全?
-
写个装饰器,如果是带参数的装饰器
-
B+树特点,叶子节点之间是单向指针还是双向指针,写个双向链表插入一个节点
-
同源策略是什么,前后端如何解决跨域
-
__init__与__new__区别
-
Java如何实现多态
-
协程特点,用户态和内核态,哪些情况下会发生用户态到内核态的转变
-
in set()的时间复杂度,为什么
-
如何保证接口的幂等性
-
内存中堆栈的区别,python垃圾回收机制
-
数据库优化方法,哪些情况不走索引,%like优化
-
ES倒排索引
-
InnoDB与MyISAM区别
-
select、poll、epoll原理
-
算法:
1.买卖股票。手里有股票时只能卖不能买
2.给定一个列表,内部元素是字典,将这个列表按字典的某一key的value值正排,如果value相同,按另一个key的value的字典序倒排
3.判断一个树是否是二叉搜索树,并自己实现测试用例测试
百度-后端研发(三面无音讯,不通知就是挂了吗)
-
mysql搭过主从吗,步骤
-
什么是事务
-
redis数据淘汰策略
-
redis几种数据结构及应用
-
有遇到过499错误吗
-
设计一个登录系统,设计一个秒杀系统
-
cookie和session区别
-
Redis和Memcached区别
-
MongoDB与Elasticsearch区别
-
日志文件中只有ip,一亿行,在限定内存下统计出出现次数最多的IP
-
在项目中如何使用kafka,pull和push模式的优劣
-
select、poll、epoll区别
-
mysql有几种索引,什么是聚集索引
-
InnoDB与MyISAM区别,应用场景
-
linux命令中跟网络相关的命令
-
乐观锁和悲观锁概念,如何在订单表中使用乐观锁
-
实现一个dict,解决hash冲突的办法,链地址法中链表过长会带来什么问题,如何解决
-
如果让你设计一个类似百度的搜索系统,你会怎么做,尽量详细
-
算法:
1.翻转字符串里的单词,力扣151
木瓜移动-Python开发(二面过)
-
进程、线程、协程区别,应用场景
-
一个上传Excel的接口,内部逻辑是收到Excel后解析字段,验证入库。目前偶尔报502错误,如何排查问题与解决
-
算法:
1.两个列表,求出在a中且不在b中的元素
2.一个列表所有元素都出现了2次,只有一个元素出现了一次,找出这个一次的元素
3.一个列表中某个元素出现次数超过了列表长度一半以上,找出这个元素(以上三题最好找出最优方法)
4.在一个有环链表找出环的入口
5.求出二叉树的最大深度