2020年4月字节跳动后端面试经验
第一面远程使用牛客网进行面试的面试官首先介绍了几个面试算法问题1.1将整数转换成二进制
然后把负数
算法问题1.2股票买卖的最大利润数组表示股票每天的价格,如果多次买卖,最大利润是多少?
日期不重合的情况下,可以多次买卖吗?
输入:{100、80、120、130、70、60、100、125}
可以多次买卖3360115(80买130卖; 60买125卖)
提示:无需输出买卖序列,只需获得最大利润
时间复杂度是什么空间复杂度是什么判断问题2.1该码有什么问题,解决total :=0f or I :=1I=10; i {sum =igo func () total ) }在编译中执行}fmt.printf('total:%dsum%d )、total、sum )代码会导致数据不一致
可以使用封锁避免
怎么锁? 代码实现以下:
varlosync.mutexfuncmain ((total :=0f ori :=1; i=10; I{nums=ILO.lock(gofunc ) ) ({total =ilo.Unlock ) ) }fmt.printf ) total:%d ',total ) }还有其他问题吗? 3其他审查3
HTTP消息格式未知
解:
3.2HTTP请求方式获取POST创建PUT修改删除
get post的区别是什么? 个人主要是get相对post不安全,所有参数都放在URL上,post将参数打包到一个请求体中
post和get包之间的差异url附带了get请求的一些参数。 所有数据包都以明文形式发送,但post不会以url形式显示
更好的答案:3359 www.zhi Hu.com/question/28586791
4数据库4.1 mysql事务主要用于处理操作量大、复杂度高的数据。 例如,在个人管理系统中,删除个人必须同时删除个人的个人资料和有关个人的信息,如邮箱、文章等。 这样,这些数据库操作语句就构成了事务
定时任务
隔离级别有几种~
4.2 MySQL数据库索引是如何实现的? 使用的b树实现了
B树与跳转表有点相似,所以可以直接查找下一个级别
你为什么不用其他的数据结构? 在数据量特别大的情况下,大数据量的查找会影响性能,所以b树正好解决了这个问题
4.3该数据库如何索引速度最快的select * from table _ name where c 10a NDA=10a ndb=10; 首先,需要优化仅查询的值。 可以将*更改为需要查询的key
由于c是动态的,所以可以根据a和b建立联合索引,速度最好
5项目相关项目爬虫你用了什么框架,什么是高并发的,怎么做的? 有微服务吗? 如果要分散的话,怎么用kafka来实现呢? 抓住数据用kafka统一消费吗
要将哪些信息保存在列表中
你们没有搜索功能吗? 如果有这个需求的话,可以保存在ES里,用ES进行检索。
6你还有什么想问的? 什么时候会有结果呢
5个工作日内答复