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

趁还没忘记赶紧来发狗家昂赛

   
全局:

2018(4-6月) 码农类General 硕士 全职@google - 内推 - Onsite  | | Other | 应届毕业生

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

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

x
今天刚面 来攒个人品
您好!
本帖隐藏的内容需要积分高于 170 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 170 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies

面试之前很紧张.. 真的开始面了之后好像也就那么回事.. 以及 狗家食堂真的没有很好吃!!!





补充内容 (2018-7-19 06:37):
16号送hc
18号通知挂啦

评分

参与人数 16大米 +80 收起 理由
gaotianhang1022 + 5 给你点个赞!
wawjchinawct + 3 给你点个赞!
kevinchen9202 + 3 很有用的信息!
dayfine + 5 给你点个赞!
adh360 + 3 很有用的信息!

查看全部评分


上一篇:东南亚打车公司面经
下一篇:狗家 SETI 店面

本帖被以下淘专辑推荐:

全局:
YukunVVan 发表于 2018-7-8 15:09
一言难尽... 一坨小米粥???带我去吃午饭的小哥尝了之后也面露难色...

楼主你是在哪个site面的啊?
回复

使用道具 举报

全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

推荐
wdwwqr 2018-9-13 10:03:58 | 只看该作者
全局:
  1. import java.util.*;

  2. public class Test {
  3.     public static void main(String[] args){
  4.         Solution s = new Solution();
  5.         int[][] map = s.randomIslands();
  6.         for(int i = 0; i < 8; i++) {
  7.             for(int j = 0; j < 8; j++) {
  8.                 System.out.print(map[i][j] + " ");
  9.             }
  10.             System.out.println();
  11.         }
  12.     }
  13. }

  14. class Solution {
  15.     Random rand = new Random();
  16.     int[][] map = new int[8][8];

  17.     public int[][] randomIslands() {

  18.         Stack<int[]>[] stacks = new Stack[4];
  19.         for(int i = 0; i < 4; i++)
  20.             stacks[i] = new Stack<>();

  21.         int[][] starts = new int[4][2];

  22.         //generate four start points
  23.         generateStarts(starts, stacks);

  24.         while(true) {
  25.             for(int i = 0; i < 4; i++) {
  26.                 if(stacks[i].size() < 16) {
  27.                     int[] start = stacks[i].peek();

  28.                     // if no exist way, keep pop the stack
  29.                     while (existWay(start) == null && !stacks[i].isEmpty())
  30.                         start = stacks[i].pop();

  31.                     //if stack is empty and no valid way, the start points is invalid, regenerate the start points
  32.                     if (existWay(start) == null && stacks[i].isEmpty()) {
  33.                         for(int j = 0; j < 8; j++)
  34.                             Arrays.fill(map[j], 0);
  35.                         for(int j = 0; j < 4; j++)
  36.                             stacks[j] = new Stack<>();
  37.                         generateStarts(starts, stacks);
  38.                         break;
  39.                     }

  40.                     int[] newStart = existWay(start);
  41.                     map[newStart[0]][newStart[1]] = i + 1;
  42.                     stacks[i].add(newStart);
  43.                 }
  44.             }
  45.             if(stacks[0].size() == 16 && stacks[1].size() == 16 && stacks[2].size() == 16 && stacks[3].size() == 16)
  46.                 break;
  47.         }
  48.         return map;
  49.     }
  50.     private void generateStarts(int[][] starts, Stack<int[]>[] stacks) {
  51.         for(int i = 0; i < 4; i++) {

  52.             int x = rand.nextInt(8);
  53.             int y = rand.nextInt(8);

  54.             //insure there is no same start points
  55.             while(map[x][y] != 0) {
  56.                 x = rand.nextInt(8);
  57.                 y = rand.nextInt(8);
  58.             }

  59.             //count the groups as 1, 2, 3, 4
  60.             map[x][y] = i + 1;

  61.             starts[i][0] = x;
  62.             starts[i][1] = y;
  63.         }

  64.         //add the start points into stacks
  65.         for(int i = 0; i < 4; i++) {
  66.             stacks[i].add(starts[i]);
  67.         }
  68.     }
  69.     private int[] existWay(int[] pts) {
  70.         int[][] moves = new int[][] {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
  71.         ArrayList<int[]> arr = new ArrayList<>();
  72.         for(int i = 0; i < 4; i++) {
  73.             int x = pts[0] + moves[i][0];
  74.             int y = pts[1] + moves[i][1];
  75.             if(x >= 0 && x < 8 && y >= 0 && y < 8 && map[x][y] == 0)
  76.                 arr.add(new int[]{x, y});
  77.         }
  78.         if(arr.size() != 0) {
  79.             return arr.get(rand.nextInt(arr.size()));
  80.         }
  81.         return null;
  82.     }
  83. }
复制代码


这样应该好一点,之前所有【i】都被omit了,具体思路我都记不清了,好像就是暴力解的

补充内容 (2018-9-13 10:04):
曰,这个也忽略,什么鬼,所有【i】还是都被清除了

补充内容 (2018-9-13 10:06):
一刷新就好了???自己演了场戏,呵呵呵呵
回复

使用道具 举报

🔗
candicedjy 2018-7-8 01:59:05 | 只看该作者
全局:
问下楼主大约多久出结果啊。。。越早出好还是越晚出好。。。紧张
回复

使用道具 举报

🔗
wtcupup 2018-7-8 02:43:29 | 只看该作者
全局:
第四轮每一个格子里只能放两种颜色?
回复

使用道具 举报

🔗
edyyy 2018-7-8 03:03:26 | 只看该作者
全局:
"狗家食堂真的没有很好吃!"吃了啥好吃的?谢谢楼主分享,祝好运!
回复

使用道具 举报

🔗
idatascience 2018-7-8 04:49:38 | 只看该作者
全局:
求问楼主你是如何实现四周random的扩展呢?多谢~
回复

使用道具 举报

🔗
Mr.Sagemaker 2018-7-8 05:46:54 | 只看该作者
全局:
有大神直到第四轮的利口原题号码咩?~
回复

使用道具 举报

🔗
sarahzjn 2018-7-8 06:11:01 | 只看该作者
全局:
把list中的单词按照每种可能的pattern存在dictionary.楼主能说说是啥意思嘛?还有楼主用的是什么语言呢?follow up能详细点嘛
回复

使用道具 举报

🔗
sarahzjn 2018-7-8 06:11:17 | 只看该作者
本楼:
全局:
非常感谢!
回复

使用道具 举报

🔗
jhwater11 2018-7-8 06:34:54 | 只看该作者
全局:
第一题楼主意思是吧每一个单词差一位的单词全部列出来存在dict里面然后之后直接用吗?
回复

使用道具 举报

🔗
ynos1155 2018-7-8 07:07:42 | 只看该作者
全局:
第一题想了两种思路,不知道lz的方法预存pattern应该怎么操作捏:
  1. // Brute force
  2. // word.size() = m, word_list.size() = n
  3. // time complexity = O{mn}
  4. vector<string> FindWords1(string word, const vector<string>& word_list) {
  5.     vector<string> ans;

  6.     for (const auto& w : word_list) {
  7.         int dist = 0;

  8.         for (int i = 0; i < word.size(); i++) {
  9.             if (word[i] != w[i]) {
  10.                 dist++;
  11.             }

  12.             if (dist > 1) {
  13.                 break;
  14.             }
  15.         }

  16.         if (dist == 1) {
  17.             ans.push_back(w);
  18.         }
  19.     }

  20.     return ans;
  21. }


  22. // Use hash map to store the word list
  23. // word.size() = m, word_list.size() = n
  24. // time complexity = O{m}, since swapping 26 letters takes constant time
  25. vector<string> FindWords2(string word, const vector<string>& word_list) {
  26.     vector<string> ans;
  27.     unordered_set<string> word_set(word_list.begin(), word_list.end());

  28.     for (int i = 0; i < word.size(); i++) {
  29.         char ch_original = word[i];

  30.         for (char c = 'a'; c <= 'z'; c++) {
  31.             if (c != ch_original) {
  32.                 word[i] = c;
  33.                 if (word_set.count(word) > 0) {
  34.                     ans.push_back(word);
  35.                 }
  36.             }
  37.         }

  38.         word[i] = ch_original;
  39.     }

  40.     return ans;
  41. }
复制代码
回复

使用道具 举报

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

本版积分规则

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