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

狗狗加面面经【2016-10-13】

全局:

2017(4-6月) 码农类General 硕士 全职@google - 内推 - 技术电面  | | Other | 应届毕业生

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

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

x
刚面完来发面经
--------------------
十月初一面
面得挺不好的,第一题只记得是个BFS/DFS给地图找路径的题,后来加了什么条件也没听懂,直接跳到第二题,当时还没出的LC399,在他的提示下只来得及说一下数据结构
两周后接到电话加面一轮
--------------------
刚刚二面

第一题不要求写code,要求说数据结构:
假设每天都给一个employee list,里面有id,
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
复数字了。。。orz
最后又问了复杂度,一开始答O(n^2),后来觉得不对,改成了O(n!)。【每题必问复杂度。。。
最后问了几个问题基本准时结束。
求人品!


补充内容 (2016-10-18 06:04):
刚刚接到电话,通知onsite了,求人品!

评分

参与人数 4大米 +128 收起 理由
jennyEternal + 5 回答的很好!
harrypotter + 3 感谢分享!
whdawn + 70
夏虫不知雪花 + 50

查看全部评分


上一篇:求netsuite onsite面经!
下一篇:求InterSystems onsite面经

本帖被以下淘专辑推荐:

全局:
第二题的DFS代码。


  1. void helper(vector<int>& digits, int tmp, int maxNumber, vector<int> &res) {
  2.     if (tmp > maxNumber) {
  3.         return;
  4.     }
  5.     if (tmp != 0) {
  6.         res.push_back(tmp);
  7.     }
  8.     for (int i = 0; i < digits.size(); i++) {
  9.         helper(digits, tmp * 10 + digits[i], maxNumber, res);
  10.     }
  11. }

  12. vector<int> getNumbers(vector<int>& digits, int maxNumber) {
  13.     vector<int> res;
  14.     sort(digits.begin(), digits.end());
  15.     helper(digits,0, maxNumber, res);
  16.     if (digits[0] == 0) {
  17.         res.push_back(0);
  18.     }
  19.     return res;
  20. }


  21. int main() {
  22.     vector<int> nums{3, 7, 8};
  23.     vector<int> res = getNumbers(nums, 1000);
  24.     for (auto a : res) {
  25.         cout << a <<endl;
  26.     }
  27.     getchar();
  28. }
复制代码

补充内容 (2016-11-8 22:38):
Assume no duplicates in digits array.
回复

使用道具 举报

推荐
xuzonghan66 2016-10-19 15:48:47 | 只看该作者
全局:
第二题:

  1. public List<Integer> getNumbers(int[] digits, int maxNumber) {
  2.                 List<Integer> result = new ArrayList<Integer>();
  3.                 if(digits.length == 0) return result;
  4.                
  5.                 Arrays.sort(digits);
  6.                 Queue<Integer> queue = new LinkedList<Integer>();
  7.                 queue.add(0);
  8.                
  9.                 while(!queue.isEmpty()){
  10.                         int size = queue.size();
  11.                         for(int i = 0; i < size; i++){
  12.                                 int previous = queue.poll();
  13.                                 for(int j = 0; j < digits.length; j++){
  14.                                         int current = previous * 10 + digits[j];
  15.                                         if(current <= maxNumber && current != 0){
  16.                                                 queue.add(current);
  17.                                                 result.add(current);
  18.                                         }
  19.                                 }
  20.                         }
  21.                 }
  22.                
  23.                 if(digits[0] == 0) result.add(0, 0); // corner case when there is 0 in digits array
  24.                 return result;
  25.         }
复制代码
回复

使用道具 举报

🔗
wtcupup 2016-10-14 03:37:19 | 只看该作者
全局:
应该是类似于combination sum的backtracking
回复

使用道具 举报

🔗
rinto 2016-10-14 03:57:23 | 只看该作者
全局:
谢谢楼主分享
第一题很有意思啊。我是这么想的,前一天的用一个hashset来存,第二天加两个新的hashset,一个存新人,一个存和前一天重复的(从前一天的里面删掉),算完以后没删掉的是离职的,再把两个新的hashset合并用于下一天计算。
如果list很长的话可以分成多个hashset, 比方讲分10个,那就是hashvalue %10来决定存在第几个hashset里面
回复

使用道具 举报

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

使用道具 举报

🔗
wopani007 2016-10-14 06:34:19 | 只看该作者
全局:
最后又问了复杂度,一开始答O(n^2),后来觉得不对,改成了O(n!)。【每题必问复杂度

这个时间复杂度是怎么来的呢?我知道这个类似于combination sum,
但是假设平均k个数字组成1000,那么就是n^k啊
回复

使用道具 举报

🔗
rinto 2016-10-14 07:49:47 | 只看该作者
全局:
printf_ll 发表于 2016-10-14 06:02
对,这个方法我在很多关于scalability题目里都有看到,不过我当时没有想到它

我上的dbms课要求implement hash join,当时是这么做的,所以一下子就想到了~
回复

使用道具 举报

🔗
 楼主| printf_ll 2016-10-14 09:18:34 | 只看该作者
全局:
wopani007 发表于 2016-10-14 06:34
最后又问了复杂度,一开始答O(n^2),后来觉得不对,改成了O(n!)。【每题必问复杂度

这个时间复杂度是怎 ...

其实我也不太清楚,之前也没有考虑过这个,然后就说了一个n!,不一定是对的
回复

使用道具 举报

🔗
黄豆沙君 2016-10-14 09:28:18 | 只看该作者
全局:
巨巨加油!!祝你好运!!!!
回复

使用道具 举报

🔗
 楼主| printf_ll 2016-10-14 13:15:52 | 只看该作者
全局:
黄豆沙君 发表于 2016-10-14 09:28
巨巨加油!!祝你好运!!!!

你怎么会认出我的!
回复

使用道具 举报

🔗
hezhifeng850207 2016-10-14 23:01:34 | 只看该作者
全局:
第二题只能backtracking,不能用dp或者memorization?
回复

使用道具 举报

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

本版积分规则

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