回复: 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一
您好!
本帖隐藏的内容需要积分高于 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面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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