手撕代码:64位无符号整数实现按位逆置(二进制);(第一遍听错了,直接写成了普通的逆置)。
介绍一下快排的思想。
单链表中怎么交换两个节点。
手撕代码:翻转二叉树
算法:手撕链表快速排序
算法:寻找峰值元素
翻转32位整型
撕代码:二叉树对称
螺旋矩阵的题,so easy!
3. 大数据处理:千万级的数,选出最小的100个数!
说的不好,表示没有准备过这类题目,网上答案很多,建议查查!
4. 一个圆,圆上有三个点,构成锐角三角形的概率!
一脸懵逼,答案1/4
应用:有上亿条有序的训练数据,内存一次可以存大概一万条,现在想要每次取一个batch(大概1千条左右)进来训练,如何设计取法
算法:有两个元素完全相同但顺序不同的数组,求最少删掉多少元素可以使得两个数组相同
问了一个比赛,特征处理的相关知识,样本不均衡怎么处理的问了lightGBM的优势,和GBDT相比有什么优势,GBDT和XGBOOST的区别,GBDT中的CART回归树每个叶子节点的输出值是什么,好像还有一些零零碎碎的小问题,记不太清了。
问了两个编程题,感觉bigo的编程题跟之前面试的不太一样,第一题是给一个矩阵(nm),求出矩阵中每两行的cos相似度,放在一个nn的矩阵里,可以用两个API(matmul(a,b)和reduce_sum(a,1));第二题是给一个数组,随机shuffle数组使得每个值在每个索引处出现的概率相等,也是给两个API(int random(),返回0-65535的任意值或者int random(a,b),返回[a,b)区间内的任意值),最后还要证明自己的方法保证概率相等