回复: 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面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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