📣 独立日限时特惠: VIP通行证立减$68
回复: 25
跳转到指定楼层
上一主题 下一主题
收起左侧

Google LA onsite

全局:

2016(10-12月) 码农类General 硕士 全职@google - 内推 - 技术电面 Onsite  | | Fail | 在职跳槽

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

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

x
去年12月去Google LA面的。很少看到LA的,贡献出来做个参考。


round 1:有一个密码箱,密码是4位数,可以是0-9任何一位。在输入密码时可以连续输入,密码会自动匹配最后4位。假设密码为3456,我输入123456时就可以打开了,但是我总共输入了6位数。要求设计一个算法,使得输入的位数尽量少。
这一轮面得很不好,估计这轮是挂了。


round 2:找 longest in
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
recursive的算法,面试官不太满意,一再提示下写了个dp的

最后还是挂了。总结了一下,Google面试很喜欢follow up,不断地发散。所以刷题的时候不能自己写完就行,还得想想有没有更优的。
没大米了,求大家给打赏一点

评分

参与人数 13大米 +127 收起 理由
Bluzai + 3 很有用的信息!
jwssdwed + 1 给你点个赞!
weiliango + 3 很有用的信息!
luckycat123 + 3 感谢分享!
yk527 + 5 感谢分享!

查看全部评分


上一篇:亚麻状态出现了两个job id,有人知道怎么回事么
下一篇:冷门 EA面经

本帖被以下淘专辑推荐:

  • · Google|主题: 458, 订阅: 133
  • · google|主题: 68, 订阅: 16
推荐
bigbearlake 2017-3-11 16:32:51 | 只看该作者
全局:
第一题代码
  1. public class DeBruijn {

  2.     public static void main(String[] args) {
  3.         String res = getDebruijn();
  4.         System.out.println(res);
  5.         System.out.println(res.length());
  6.     }

  7.     public static String getDebruijn() {
  8.         StringBuilder sb = new StringBuilder();
  9.         sb.append("999");
  10.         HashSet<String> set = new HashSet();
  11.         for (int i = 0; i < 1000; i++) {
  12.             String str = sb.toString().substring(sb.length() - 3);
  13.             for (int j = 0; j <= 9; j++) {
  14.                 String newStr = str + j;
  15.                 if (!set.contains(newStr)) {
  16.                     str = newStr;
  17.                     sb.append(j);
  18.                     break;
  19.                 }
  20.             }
  21.             set.add(str);
  22.         }

  23.         System.out.println(set.size());
  24.         return sb.toString();
  25.     }

  26. }
复制代码
回复

使用道具 举报

推荐
muyunhai 2017-1-29 02:50:04 | 只看该作者
全局:
楼主确定没被黑么。。。 第一题是要求De Bruijn sequence,虽然说其实就是个贪心,但是一般人谁能想到啊。。。
回复

使用道具 举报

🔗
OracleDesire 2017-1-28 16:39:22 | 只看该作者
全局:
mark 一下看看第一个怎么做。
回复

使用道具 举报

🔗
delcarren 2017-1-28 16:53:34 | 只看该作者
全局:
第一题啥意思?
回复

使用道具 举报

🔗
 楼主| sherry11115 2017-1-29 02:00:14 | 只看该作者
全局:

可以想成是一个sliding window,长度为4,但是他只会看最后4位是不是跟密码一样。比如我先输入1234,密码不匹配。接着我再敲个5,最后4位是2345,还是和密码不一样。最后当我敲入6的时候,最后4位是3456,跟密码一样,箱子就可以打开了。要求设计一个算法,使得我输入的位数尽量少。
回复

使用道具 举报

全局:
muyunhai 发表于 2017-1-29 02:50
楼主确定没被黑么。。。 第一题是要求De Bruijn sequence,虽然说其实就是个贪心,但是一般人谁能想到啊。 ...

能不能细说一下思路呀? 只能想到backtracking暴力啊
回复

使用道具 举报

🔗
muyunhai 2017-1-29 03:04:55 | 只看该作者
全局:
总共有10000种情况,所以最次40000个数一定要出解,目标就是要做的比他优。那么如果你非常的倒霉,worstcase情况你无论如何都要看10000个不同的组合,也就是说你输入至少10003位(前三位多余,从第四位开始每一位表示一个不同的四位数的结尾)。那么问题来了,能否在10003个数之内解决问题。

答案是能。你可以直接Google De Bruijn Sequence,上面有算法。算法非常简单,最开始输入000,然后每次加一位的时候找没出现过的最小的。证明比较复杂,但是可以证明在这10000种情况都出现之前,不会有重复的出现,也不会有不能走的情况出现。
回复

使用道具 举报

🔗
YY大帝 2017-1-29 03:06:06 | 只看该作者
全局:
请问LZ第五轮DP怎么做啊,是要Iterative吗
回复

使用道具 举报

🔗
blood8088 2017-1-29 03:42:36 | 只看该作者
全局:
muyunhai 发表于 2017-1-29 03:04
总共有10000种情况,所以最次40000个数一定要出解,目标就是要做的比他优。那么如果你非常的倒霉,worstcas ...

给大神跪了

但是这种题,这是黑吧。。。。。。
回复

使用道具 举报

🔗
byrlhb 2017-1-29 03:46:21 | 只看该作者
全局:
第一题不就是那个欧拉环嘛,这种题不会也不怪lz,好公司多得是
回复

使用道具 举报

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

本版积分规则

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