注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
五月份的onsite,面的是西雅图的Senior SDE
* 第一轮: 利口 酒零酒
我的方案:
class Solution {
public int snakesAndLadders(int[][] board) {
int n = board.length;
Map<Integer, Integer> map = new HashMap<>();
map.put(1, 0);
Queue<Integer> q = new LinkedList<>();
q.offer(1);
while (!q.isEmpty()) {
int current = q.poll();
if (current == n * n) {
return map.get(current);
}
for (int next = current + 1; next <= Math.min(n * n, current + 6); next++) {
int rc = get(n, next);
int row = rc / n;
int column = rc % n;
int finalNext = board[row][column] == -1 ? next : board[row][column];
if (!map.containsKey(finalNext)) {
map.put(finalNext, map.get(current) + 1);
q.offer(finalNext);
}
}
}
return -1;
}
private int get(int n, int current) {
int r1 = (current - 1) / n;
int c1 = (current - 1) % n;
int row = n - r1 - 1;
int col = (r1 % 2 == 0) ? c1 : n - c1 - 1;
return row * n + col;
}
}
然而面试官想让我用这个方案
页面的事件,然后再query找出任何用户顺序点击这三个页面,最后弹出广告。这期间对方问了几个问题,比如说怎么处理大流量,怎么部署不会影响amazon.com等等
* 第四轮: 纯BQ。基本上围绕着为什么我的项目有挑战性,风险究竟在哪里,不做会怎么样,做了会怎么样等等。问我的是一个烙印Director,他各种打断,各种不耐烦,搞得我非常搓火。
*
* 第五轮:也算是算法题吧:given two api, getFriends(userid) and getRatings(bookId), return the list of books ordered by average ratings descending
一开始他提的需求很不清楚,俩API都没说清楚,我只能再三clarify,然后设计class,比如说user,book等等,然后按照BFS的思路,先找到所有的user,再找所有的书以及其ratings,最后算出平均rating,排序,出结果。
总结一下没过的经验教训:
1. 刷题不够。我只刷了不到200,两道原题答得不好。对方看来是期望最佳答案的。
2. BQ准备不足。亚麻的14条LP我准备了大概50个故事,3000字左右。自认为够了。然而,对方其实很在乎每个项目的规模,风险有多大,决策过程等等。最后他毫不掩饰的表达了对我的项目的蔑视。
3. 系统设计从recruiter的字里行间推测,没什么大的问题。
总的来说,这是个垃圾组,做的内容很边缘,这个director是我见过的面试官里最差的。
|