📣 独立日限时特惠: VIP通行证立减$68
楼主: JermaineDing
跳转到指定楼层
上一主题 下一主题
收起左侧

Facebook 2015暑期实习面经

🔗
siren01 2015-4-9 08:49:13 | 只看该作者
全局:
marthew777 发表于 2015-4-9 07:26
上面的代码我说了是给一个算法实现的大概思路,肯定有syntax error的好吗,我花几分钟随手写的。。
完整 ...

赞,我当时在飞机上,照你思路编着编..,谢谢你提供完整代码
回复

使用道具 举报

🔗
siren01 2015-4-9 09:11:38 | 只看该作者
全局:
时间空间复杂度都是O(m*n), 每个点遍历一次即可
  1. //Assume '_' is 0, 'G' is 1, 'W' is 2
  2.         private class Position{
  3.                 int x;
  4.                 int y;
  5.                 public Position(int x, int y){
  6.                         this.x = x;
  7.                         this.y = y;
  8.                 }
  9.         }
  10.         public void findLen(int[][] matrix){
  11.                 int m = matrix.length;
  12.                 if(m<1) return;
  13.                 int n = matrix[0].length;
  14.                 int[][] result = new int[m][n];
  15.                 boolean[][] visited = new boolean[m][n];
  16.                 Queue<Position> queue = new LinkedList<Position>();
  17.                 int curLevel_nums = 0;
  18.                 int nextLevel_nums = 0;
  19.                 int level = 1;
  20.                 for(int i=0; i<m; ++i){
  21.                         for(int j=0; j<n; ++j){
  22.                                 if(matrix[i][j] == 1){//enqueue gate
  23.                                         visited[i][j] = true;
  24.                                         queue.add(new Position(i, j));
  25.                                         curLevel_nums++;
  26.                                 }
  27.                         }
  28.                 }
  29.                 while(!queue.isEmpty()){
  30.                         Position cur = queue.poll();
  31.                         curLevel_nums--;
  32.                         int[] arr = {1,-1,1,-1};
  33.                         for(int i=0; i<arr.length; ++i){
  34.                                 Position newP;
  35.                                 if(i<2){
  36.                                         newP = new Position(cur.x+arr[i], cur.y);
  37.                                 }
  38.                                 else{
  39.                                         newP = new Position(cur.x, cur.y+arr[i]);
  40.                                 }
  41.                                 if(newP.x<0 || newP.x>=m || newP.y<0 || newP.y>=n || visited[newP.x][newP.y]){
  42.                                         continue;
  43.                                 }
  44.                                 else{
  45.                                         if(matrix[newP.x][newP.y]==2){
  46.                                                 visited[newP.x][newP.y] = true;
  47.                                                 result[newP.x][newP.y] = -1;
  48.                                         }
  49.                                         else{//matrix[newP.x][newP.y]==0
  50.                                                 visited[newP.x][newP.y] = true;
  51.                                                 result[newP.x][newP.y] = level;
  52.                                                 queue.add(newP);
  53.                                                 nextLevel_nums++;
  54.                                         }
  55.                                 }
  56.                         }
  57.                         if(curLevel_nums==0){
  58.                                 curLevel_nums = nextLevel_nums;
  59.                                 nextLevel_nums = 0;
  60.                                 level++;
  61.                         }
  62.                 }
  63.                
  64.                 //print
  65.                 for(int i=0; i<m; ++i){
  66.                         for(int j=0; j<n; ++j){
  67.                                 System.out.print(result[i][j]+ "  ");
  68.                         }
  69.                         System.out.println();
  70.                 }
  71.         }
复制代码
回复

使用道具 举报

🔗
Aprilyn 2015-4-9 10:41:08 | 只看该作者
全局:
能问下啊,lz啥时网上海投的?
回复

使用道具 举报

🔗
 楼主| JermaineDing 2015-4-10 00:52:57 | 只看该作者
全局:
Aprilyn 发表于 2015-4-9 10:41
能问下啊,lz啥时网上海投的?

我是三月下旬海投的,当时过了两天之后,安排我在4月7号面试。
回复

使用道具 举报

🔗
offfer 2015-4-10 01:18:33 | 只看该作者
全局:
都这么晚了...facebook实习真还有坑?
回复

使用道具 举报

🔗
 楼主| JermaineDing 2015-4-10 10:34:44 | 只看该作者
全局:
offfer 发表于 2015-4-10 01:18
都这么晚了...facebook实习真还有坑?

现在不知道有没有了,不过那个时候确实还有。
回复

使用道具 举报

🔗
JamesJi 2015-4-10 22:36:44 | 只看该作者
全局:
想请问一下FB如果挂了的话,冷冻期会影响到接下来投full time的吗
回复

使用道具 举报

🔗
emersonxsu 2015-4-11 01:04:49 | 只看该作者
全局:
JamesJi 发表于 2015-4-10 22:36
想请问一下FB如果挂了的话,冷冻期会影响到接下来投full time的吗

会的,我刚刚问过HR...所以有点小慌. 今天店面.
回复

使用道具 举报

🔗
resoy 2015-4-11 01:20:35 | 只看该作者
全局:
楼主,不太明白,最后返回值需要是什么? 一个matrix? 如果一个_到多个gate, 需要print哪一个距离?
回复

使用道具 举报

🔗
 楼主| JermaineDing 2015-4-11 05:15:21 | 只看该作者
全局:
resoy 发表于 2015-4-11 01:20
楼主,不太明白,最后返回值需要是什么? 一个matrix? 如果一个_到多个gate, 需要print哪一个距离?

返回一个matrix,如果有多个G,找最近的那一个。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表