近期,霍格沃兹测试学院的@T同学面试了某知名互联网大厂测试开发岗位,面试过程中遇到不少令人头疼的题目,心态也随之起伏。虽然最终通过三面,拿下高薪Offer,但也直呼刺激。
本文是其复盘总结的部分面试真题,分享出来供各位测试小伙伴学习参考。看看下面这些题目,你可以回答出多少呢?
面试官应该是团队的某位技术大佬,一脸理工男的严肃,令人感到鸭梨很大。
- set(key,value):将记录(key,value)插入该结构 - get(key):返回key对应的value值 [要求]
- set和get方法的时间复杂度为O(1) - 某个key的set或get操作一旦发生,认为这个key的记录成了最常使用的。
- 当缓存的大小超过K时,移除最不经常使用的记录,即set或get最久远的。
- 若opt=1,接下来两个整数x,y,表示set(x,y) - 若opt=2,接下来一个整数x,表示get(x),若x未出现过或已被移除,则返回-1
- 对于每个操作2,输出一个答案 [示例1] 输入 [[1,1,1],[1,2,2],[1,3,2],[2,1],[1,4,4],[2,2]],3 输出 [1,-1] 说明 - 第一次操作后:最常使用的记录为("1",1) - 第二次操作后:最常使用的记录为("2",2),("1",1)变为最不常用的
- 第三次操作后:最常使用的记录为("3",2),("1",1)还是最不常用的
- 第四次操作后:最常用的记录为("1",1),("2",2)变为最不常用的
- 第五次操作后:大小超过了3,所以移除此时最不常使用的记录("2",2),加入记录("4",4),并且为最常使用的记录,然后("3",2)变为最不常使用的记录
这次面试官气场相对亲切柔和,整体氛围比较轻松。
还是技术面,不少问题仍然很有挑战,原本放松的心一下子又紧张起来。…。