Amazon SDE II 面试体验
第1轮:
问题 1:重新排列 LinkedList –
之前:a->x->b->y->c->z
之后:a->b->c->z->y->x
第一种直觉——分别为 a->b->c 和 x->y->z 维护两个列表。
反转第二个列表并将其连接到第一个列表的末尾。
面试官:LL倒车是不允许的。
第二个直觉 - 堆栈的使用,在遍历要反转的第二个列表时,将元素保留在堆栈中,然后将它们连接起来。
面试:不允许使用堆栈。
第三直觉——一次性操纵指针!!!
问题 2:求一棵树的直径
第 2 轮:
问题 1:给定一个数字数组和一个窗口大小 k。在遍历数组时找到每个窗口中的最大元素。
问题 2:k-Reverse 一个 LinkedList
领导原则问题
第三轮:
设计图书馆管理系统。
扩展:
添加预订的概念。
提供最短的时间等待学生获得一本书。
例如,已经发行了 3 本书,新学生排在第 37 位。
领导原则问题
第四轮:
领导原则问题
问题一:设计一个Plugable Cache,即随时可以从LRU变为MFU或LFU等。
LRU——最近最少使用
MFU——最常用的
问题 2:多个矩阵
输入:[[a, b, c]
[d, e, f]
[x, y, z]]
行数和列数可能会有所不同。
输出:adx,ady,adz,bdx,...。 cfy, cfz
结果:拒绝