avatar-decorate
获赞
1107
粉丝
762
关注
1
看过 TA
1.2W
上海交通大学
2023
搜索算法
IP属地:北京
前Shopee逐风计划信息检索算法工程师实习生
私信
关注
今天周赛又破纪录,第二次进国前200,世前400今天是力扣官方举办的第88场双周赛。作为一个挂过字节的人,第四题轻车熟路哈哈哈字节秋招提前批,投的是算法工程师-搜索(好像现在都没挂),那是一个美好的下午,7月12号,不对,晚上,我还在实习,租了个会议室,出的面试题是求逆序对(https://leetcode.cn/problems/shu-zu-zhong-de-ni-xu-dui-lcof/submissions/),我强行用map-二分写出来,其中还有些瑕疵,面试官勉强同意了,问还有没有其他解法,没答上来,后来发现不能用map算,因为其迭代器不能和begin相减求个数()。面试官是策略组的,这意味着我投错了组,面试结果就是建议我去基础架构组,把我转岗了,其实就算被挂也心甘情愿(2020.04.24,2021.03.25,2022.07.12,2022.10.01另外这题也是2021年算法课的作业题),后来正式批,第一个志愿被秒挂,第二个志愿稍微久了点,也没过简历。好了,回到周赛。有点尴尬,挂了3个彩。第四题是写好后函数参数传错了,c写成了a,两个示例却过了导致没发现。第三题是异或,有点吓人,把握最终结果里每个数出现的次数就有意思了。第二题没取max导致出现-1,即没开始上传就求一次最长上传前缀的情况。第一题反而有点长而复杂,最终是没考虑到只有一个字母出现1次其他字母都出现k次的情况。 #笔试#
0 点赞 评论 收藏
转发
2022-09-29 午夜随笔之叕来送idea/专利了 这次还是一个匹配/搜索/查询算法领域,又是难产而亡,还是将花落谁家呢?让我们拭目以待。 0. 问题简介值域:[1,1000000] 正整数 被查询数据/数据库/算法输入/数据集:一千万个 pair 查询:输入一个value比如50万,快速找出value大于等于50万的所有id 要求:方便更新、查询快、适合多个维度/属性上的AND查询 (比如要同时满足另一个维度上所有value大于等于75万的id,或者还要满足在第三个维度上有定义value的id(非空)) 1. 现有算法设置1000个桶(动态数组),桶号从1开始编号,第一个桶存储value位于[1,1000]的pairs,第二个桶存储value位于[1001,2000]的pairs,最后一个桶存储value位于[999001,1000000]的pairs 查询:比如查询value为505000,则桶号52~100里的id即为满足条件的查询结果,另外51号桶里value大于505000的id也是查询结果,用一千万位的位集存储这些id是否出现,每个维度共享这个位集,即可解决问题。 2. 不足与改进如果存在热点,则pair会集中存在于某些桶里,导致当查询值落入这些桶时需要挨个比较很多次。比如500001~510000之间的pair有800万个,则对于这个区间里的查询值,每次需要比较800万次,因为插入时就是直接append到桶的最后一个位置,每个桶上都是无序动态数组,需要挨个比较,不能二分。 改进把按值域宽度等分来划分区间改成按负载等分来划分区间,让每个查询的比较次数相同,性能稳定这种等负载区间不会因为割裂热点带来什么负面影响(本来以为会有什么缺点呢,或者是还没找到?)具体看图片/// 这时算落入哪个区间不能O(1)了,而是O(n)。 小小变动,不成敬意,来自某次面试。但这是很底层的一个改动,位于其上的算法会由之而变比如HEM的负载累增位集可以变成区间累增了,因为区间已经是负载均衡的了,不需要再加一层动态了。双向选择优化不存在动静模式了,因为此时的静态即区间数/桶数可以等价于动态的负载。但都需要过一段时间等热点偏移了就重新构建一下索引,当然在插入时实时调整也不是不可以:某个区间内的点
0 点赞 评论 收藏
转发
2022-09-24 午夜随笔之面试时带面试官入坑自己的领域,尽可能让面试官学到点东西有所收获,余之所求也。​这届面试官只有寥寥几个认真、聪明、有亲和力且理解力强,没那么浮躁,在短短几十分钟里就把我“教”地都学会了,对不懂的地方也及时大胆地提出了许多问题并得到了一对一地解答。​印象最深刻的是实习有次面字节,他是第一个理解清了算法原理的,从此也让我意识到不是我的问题,也不是算法本身深奥的问题,这就是个态度和愿不愿意学的问题。​遗憾地是没记录还有哪几个面试官,秋招时甚至有个面试官对我的数据结构的倾斜问题提出了新的调整思路,​印象中快手的面试体验很不错,​有一次好像是mmt居然还给我钻牛角尖非要问为什么举例的值为60不是其他值,问了好几次我也答了好几次都没说服他,我嗨了声气被理解为我都解释得不耐烦了他都没听懂都不好意思了,其实我只是来劲了肯定有把握讲得通俗易懂,最后只好设成一个变量x表示任意值才说服了他。​我举例为某个值也只是为了让事情更简单。​此外数巅科技有次或几次也面的不错。​面的多了有了“教学经验”,读研提出的算法或理论越来越容易传授给人了,甚至口头就能讲清楚很多原理让一个新手小白立即入坑摇身一变成为行家。
投递快手等公司10个岗位
0 点赞 评论 收藏
转发
牛客网
牛客企业服务