字节三面
项目
主要是一些项目的细节以及设计方面的;
底层问题
1, 如果js不提供闭包, 你如何实现闭包?
2, 如果react不提供useState, 如何实现useState()钩子? 状态如何更新? 如何触发组件渲染
3, 为什么有原型?
4, 函数组件和类组件的区别和联系? 为什么有函数组件还要搞个类组件? react封装解决了什么问题?
5, js为什么有原型链?他为什么有这个东西?他属于这个语言的特性;
6, 为什么有虚拟dom, 相比于原生dom, 优点在哪? 他既然性能不好, 为什么还要用?
算法题
1, 给你一颗二叉树,打印它的右视图
2, MySQL 设置最大连接数
采集一个服务,在高峰期一段连续时间里的所有连接记录,这些记录是无序的,每条记录是一个三元组(连接id、开始时间、结束时间),时间是秒级的时间戳,求这段时间的最大连接数
就是一个数组:
https://www.lintcode.com/problem/919/
js
const list = [
[id, start,end],
...
]js
const maxConnect = (list) => {
let max_count = 0;
let current = 0;
let events = []
for(const value of list){
const {id, start, end} = value
events.push([start,1])
events.push([end,-1])
}
events.sort((a,b)=>{
a[0] - b[0]
})
for(const value of events){
const[a, b] = value
current += b
max_count = Math.max(current, max_count)
}
return max_count
}1, 问, 思路是? 时间复杂度和空间复杂度是? 2, 最大连接数是? 就是start和end的最大重合数;