回复: 68
跳转到指定楼层
上一主题 下一主题
收起左侧

狗家阳谷挂经 攒人品

全局:

2019(1-3月) 码农类General 本科 全职@google - 内推 - Onsite  | | Fail | 在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
这周一面的,本来感觉面的还不错,今天收到电话说挂了,原因是多个面试官说coding effiency不太够...algorithm design communication啥都没问题....诶...
面的swe,总共五轮,面试官都是白人男性...

第一轮:马甲版 利口 而久久, follow up:如果已知分数比如1B3C,如何设计算法猜词?变种 利口 巴斯散,follow up 没写码,时间不太够,太仓促没答的很好...

第二轮:tech lead老爷爷,设计一个迷宫生成算法,input是迷宫的长,宽,还有起点 终点坐标,返回整个maze,要求必须随机生成,且起点到终点有且只有一条路,且function run一次一定会生成一个valid的迷宫,不会出错,老爷爷给了一点小hint,我脑子里顿时冒出来一个bfs的解,一气呵成写完了,老爷爷看着很满意,说这就
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
atrix里面大部分都是0该怎么办?答:用hahsmap记录然后再更新,然后写了几行码,然后还剩5分钟聊天

第五轮:L家跳来的小哥,来了道L家高频,利口 留疤 原题,这题第一个版本写的时候space没有处理好,和面试官一起处理了下corner case,最后还剩10分钟,先讨论了我的码该怎么优化空间,然后问小哥问题

所以请问地里的各位大佬,我这个写题速度是慢了嘛?该如何改进?求各位大佬指点...
最后求个大米...

评分

参与人数 15大米 +41 收起 理由
阿满 + 3 赞赞赞
MirandaChou + 2 很有用的信息!
sstcurry + 3 给你点个赞!
lindali2010 + 3 感谢分享!
tobebeyond + 5 很有用的信息!

查看全部评分


上一篇:软软社招总结
下一篇:亚麻OA1

本帖被以下淘专辑推荐:

推荐
 楼主| tianchez 2019-3-4 04:51:49 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

推荐
simpleg 2019-3-2 17:55:05 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies

评分

参与人数 6大米 +11 收起 理由
sstcurry + 3 给你点个赞!
四月暮 + 1 很有用的信息!
HaykinCs + 1 很有用的信息!
jiaguo + 1 赞一个
tianchez + 3 给你点个赞!

查看全部评分

回复

使用道具 举报

推荐
 楼主| tianchez 2019-3-3 14:22:28 | 只看该作者
全局:
顺便po一下我刚才码的迷宫生成的bfs 和 dfs两个解好了... 再多攒点人品好了
  1. import java.util.*;

  2. public class Maze{

  3.     int[] start, end;
  4.     Cell[][] maze;
  5.     boolean[][] visited;
  6.     int[][] dirs = {{-1,0}, {1, 0}, {0, -1}, {0, 1}};



  7.     class Cell{
  8.         boolean up_open;
  9.         boolean down_open;
  10.         boolean left_open;
  11.         boolean right_open;
  12.     }

  13.     public Maze(int height, int width, int[] start, int[] end ){
  14.         maze = new Cell[height][width];
  15.         visited = new boolean[height][width];

  16.         for (int i=0; i<maze.length; i++)
  17.             for (int j=0; j<maze[0].length; j++){
  18.                 maze[i][j] = new Cell();
  19.             }
  20.         
  21.         this.start = start;
  22.         this.end = end;
  23.     }

  24.     public void bfs_construct(){
  25.         Queue<int[]> q = new LinkedList();
  26.         q.offer(start);
  27.         visited[start[0]][start[1]] = true;

  28.         while (!q.isEmpty()){
  29.             int[] pos = q.poll();
  30.             ArrayList<Integer> dir_set = getRandomDir();

  31.             for (int i: dir_set){
  32.                 int new_x = pos[0] + dirs[i][0];
  33.                 int new_y = pos[1] + dirs[i][1];
  34.                 if (inBound(new_x,new_y) && !visited[new_x][new_y]){
  35.                     Cell curr_cell = maze[pos[0]][pos[1]];
  36.                     Cell next_cell = maze[new_x][new_y];
  37.                     if (i == 0){
  38.                         curr_cell.up_open = true;
  39.                         next_cell.down_open = true;
  40.                     }
  41.                     else if (i == 1){
  42.                         curr_cell.down_open = true;
  43.                         next_cell.up_open = true;
  44.                     }
  45.                     else if (i == 2){
  46.                         curr_cell.left_open = true;
  47.                         next_cell.right_open = true;
  48.                     }
  49.                     else if (i == 3){
  50.                         curr_cell.right_open = true;
  51.                         next_cell.left_open = true;
  52.                     }
  53.                     q.offer(new int[]{new_x, new_y});
  54.                     visited[new_x][new_y] = true;
  55.                 }
  56.             }
  57.         }
  58.     }

  59.     public void dfs_construct(int x, int y){
  60.         if (!inBound(x, y)) return;
  61.         visited[x][y] = true;
  62.                 // pick random neighbor
  63.                 ArrayList<Integer> dir_set = getRandomDir();
  64.                 for (int i: dir_set){
  65.                     int new_x = x + dirs[i][0];
  66.                     int new_y = y + dirs[i][1];
  67.                     if (inBound(new_x,new_y) && !visited[new_x][new_y]){
  68.                         Cell curr_cell = maze[x][y];
  69.                         Cell next_cell = maze[new_x][new_y];
  70.                         if (i == 0){
  71.                             curr_cell.up_open = true;
  72.                             next_cell.down_open = true;
  73.                         }
  74.                         else if (i == 1){
  75.                             curr_cell.down_open = true;
  76.                             next_cell.up_open = true;
  77.                         }
  78.                         else if (i == 2){
  79.                             curr_cell.left_open = true;
  80.                             next_cell.right_open = true;
  81.                         }
  82.                         else if (i == 3){
  83.                             curr_cell.right_open = true;
  84.                             next_cell.left_open = true;
  85.                         }
  86.                         dfs_construct(new_x, new_y);
  87.                     }
  88.                 }
  89.     }

  90.     Random rand = new Random();
  91.     private ArrayList<Integer> getRandomDir(){
  92.         ArrayList<Integer> dir_set = new ArrayList();
  93.         while (dir_set.size()< 4){
  94.             int d = rand.nextInt(4);
  95.             if (!dir_set.contains(d)) dir_set.add(d);
  96.         }
  97.         return dir_set;
  98.         
  99.     }

  100.     private boolean inBound(int i, int j){
  101.         if (i < 0 || j < 0 || i > maze.length-1 || j > maze[0].length-1) return false;
  102.         return true;
  103.     }

  104.     public void print(){
  105.         for (int i=0; i<maze.length; i++){
  106.             String s1 = "";
  107.             String s2 = "";
  108.             String s3 = "";
  109.             for (int j=0; j<maze[0].length; j++){
  110.                 Cell curr_cell = maze[i][j];
  111.                 s1 += " ";
  112.                 if (curr_cell.up_open) s1 += " "; else s1 += "-";
  113.                 s1 += " ";
  114.                
  115.                 if (curr_cell.left_open) s2 += " "; else s2 += "|";
  116.                 if (start[0] == i && start[1] == j)
  117.                     s2 += "S";
  118.                 else  if (end[0] == i && end[1] == j)
  119.                     s2 += "E";
  120.                 else
  121.                     s2 += " ";
  122.                 if (curr_cell.right_open) s2 += " "; else s2 += "|";

  123.                 s3 += " ";
  124.                 if (curr_cell.down_open) s3 += " "; else s3 += "-";
  125.                 s3 += " ";
  126.             }
  127.             System.out.println(s1);
  128.             System.out.println(s2);
  129.             System.out.println(s3);
  130.         }
  131.     }
  132.     public static void main(String[] args){
  133.         Maze m = new Maze(10, 10, new int[]{1,3}, new int[]{8,7});
  134.         // m.print();
  135.         // m.bfs_construct();
  136.         m.dfs_construct(1,3);
  137.         m.print();
  138.         System.out.println();
  139.     }
  140. }
复制代码
回复

使用道具 举报

全局:
如果是swe的话 应该是没hc了吧..
回复

使用道具 举报

🔗
c0dingc0ding 2019-3-2 13:49:03 | 只看该作者
全局:
我两轮code都没写完也送HC了,不知道HC怎么看
回复

使用道具 举报

🔗
 楼主| tianchez 2019-3-2 13:50:49 | 只看该作者
全局:
c0dingc0ding 发表于 2019-3-2 13:49
我两轮code都没写完也送HC了,不知道HC怎么看

我也看不懂 都是谜。。
回复

使用道具 举报

🔗
 楼主| tianchez 2019-3-2 13:52:14 | 只看该作者
全局:
yuhaoz3 发表于 2019-3-2 12:27
如果是swe的话 应该是没hc了吧..

跳槽和new grad情况不一样?不过我也就一年半经验。。
回复

使用道具 举报

🔗
lxy16555 2019-3-2 14:30:57 | 只看该作者
全局:
楼主请问,第一题的第一个follow up有没有什么好方法吗?
给一个历史猜词记录怎么判断是不是好的猜想?
回复

使用道具 举报

🔗
visa 2019-3-2 16:26:41 | 只看该作者
全局:
请问一下楼主,那个generate maze怎么做的呀?
回复

使用道具 举报

🔗
visa 2019-3-2 17:58:57 | 只看该作者
全局:
simpleg 发表于 2019-3-2 17:55
princeton 算法书的网站 介绍了一种方法,可以借鉴。

https://algs4.cs.princeton.edu/41graph/Maze.j ...

谢谢回复,不管有没有用,已加米
回复

使用道具 举报

🔗
木易wen 2019-3-2 22:48:20 | 只看该作者
全局:
lz第三轮没给提示吗 需要parent指针才能O(1)
回复

使用道具 举报

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

本版积分规则

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