大家好,我这次又来了,这次说的公司是LeetCode,就是提供LeetCode平台的那个公司。
公司因为是提供算法平台,所以面试主要都是跟算法相关的题目。
上来先进行了自我介绍之后,也没有问其他的问题,然后就开始了两道题目。
第一道:#字棋
题目的意思就是给你一个n * n的棋盘,两个人分别下棋,每个人下一步,谁先连成一条线,也就是横着一条线或者纵着一条线,再或者最长的对角线,不管是主方向也好,或者反方向也好,这个玩家就赢了。
里面有一个next函数,大概长下面这个样子,
next(x: number, y: number, type: number),里面的参数就是x和y是你的落子的横轴和纵轴,type代表哪个用户下的子。
让你完成这道题目。
我是先完成了题目,面试官让我优化,说时间复杂度和空间复杂度,能不能降下来,我已开始没有想出来,面试官给了提示,想出来了。
第二道:异步编程的实现,语言是TypeScript
题目是这样子,实现一个并发处理promise的控制函数,返回值顺序与入参fns保持一致
Tips1:不要修改任何题干中的类型定义,解答过程中和结果均要保证结果正确 且 类型正确 Tips2:你可以在顶级作用域,定义额外的变量,函数
Tips3:你可以使用JavaScript提供的标准特和API,无需考虑兼容性,但不能引用第三方库 Tips4:请考虑工程化和代码维护性,不仅仅是把功能实