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

Google Sunnyvale Onsite 1/8 New Grad

全局:

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

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

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

x
去年10月投的简历,找了两个学长,还有室友实习时候认识的朋友内推。12月因为期末和假期所以推迟到1月onsite,等了很久4月15终于收到了Offer。过去了很久题目可能有些记不清了,可能题目本身不relevant了但是还是分享一下经历。也祝福还在准备面试的朋友们。
[hide=1701. 第一轮面试官是个印度大哥,在Google工作五年以上了。题目是这样的,有n个城市,每个城市都有平均m班次飞机,飞机有各自的起飞时间和降落时间。问一个人从A城市出发,到B城市结束一个multistop flight,寻找最快的到达时间。

我的思路是先考虑两个城市之间的最快到达时间。然后每个城市的所有飞机通过对起飞/降落时间排序来寻找可用航班。
这一轮代码没有写很多,绝大部分时间都在和面试官讨论一些细节,聊该用什么数据结构。我一直觉得每一
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
一起搞不清然后一起写代码跑case。。。
然后manager又无法在同一张图里表示需要另一个Tree。最后的follow up是怎么判断这个tree是valid的。我然后又开始胡说了。
[/hide]

题目如果没有解释清楚欢迎讨论,但是细节可能我也记得不完美了。重点还是和面试官沟通。祝大家找工作顺利,不要放弃啊,你看我第一个OA帖子已经5个月过去了啊。也感谢地理分享经验的朋友们,内推我的学长们,帮我mock的朋友们。Fight On。

评分

参与人数 5大米 +36 收起 理由
FloorTrudeau + 1 People slap me, I return with song.
Wyf2222 + 2 给你点个赞!
fengfeng8867dd + 1 赞一个
zjccpmh + 2 Fight on!
匿名用户-TRMAW + 30

查看全部评分


上一篇:甲骨文 Irvine 电话面试
下一篇:4.17新鲜亚麻面筋
推荐
 楼主| Guoyi 2019-4-19 08:06:49 来自APP | 只看该作者
全局:

是的但是我没法编辑了:(
假装hide成功好了
回复

使用道具 举报

全局:
恭喜楼主!加油加油!紫薯紫薯
回复

使用道具 举报

🔗
evissoup 2019-4-19 00:36:01 | 只看该作者
全局:
楼主没hide成功😂
回复

使用道具 举报

🔗
yangliu0510 2019-4-25 14:10:52 | 只看该作者
本楼:
全局:
赞不hide!
回复

使用道具 举报

🔗
hhzzk 2019-5-24 12:35:13 | 只看该作者
全局:
现在hide成功了
回复

使用道具 举报

🔗
Wyf2222 2019-5-30 11:57:50 | 只看该作者
全局:
请问一下第二轮第二题 怎么算能形成三角形

这种两种怎么算?
1  -- 2
|      |
3 — 4

1  — 2  — 4
\            /
   \       /
      3
回复

使用道具 举报

🔗
 楼主| Guoyi 2019-5-30 12:25:15 来自APP | 只看该作者
全局:
Wyf2222 发表于 2019/05/30 11:57:50
请问一下第二轮第二题 怎么算能形成三角形

这种两种怎么算?
1  -- 2
|      |
3 — 4

1  — 2  — 4
\            /
   \    ...

三个点两两之间有一条边这种
回复

使用道具 举报

🔗
Wyf2222 2019-5-30 12:29:05 | 只看该作者
全局:
写了个O(E*(V+E))解法  

  1. """

  2. given a graph with V vertex, E edges
  3. how many triangles are there in this graph

  4. """
  5. import collections

  6. def build_graph(edges):
  7.         graph = collections.defaultdict(set)
  8.         for u,v in edges:
  9.                 graph[u].add(v)
  10.                 graph[v].add(u)

  11.         return graph


  12. def find_cycle(graph,src,dst):
  13.         queue  = collections.deque()
  14.         queue.append((src,[src]))
  15.         result = []
  16.         while queue:
  17.                 size = len(queue)
  18.                 for _ in range(size):
  19.                         cur,path = queue.popleft()

  20.                         if len(path)==3:
  21.                                 if cur==dst:
  22.                                         result.append(path)
  23.                                 else:
  24.                                         continue
  25.                         for nxt in graph[cur]:
  26.                                 if nxt not in path:
  27.                                         queue.append((nxt,path+[nxt]))

  28.         return result

  29. def remove_edge(u,v,graph):
  30.         graph[u].remove(v)
  31.         graph[v].remove(u)

  32. def add_edge(u,v,graph):
  33.         graph[u].add(v)
  34.         graph[v].add(u)

  35. def graph_triangle(V, edges):

  36.         graph = build_graph(edges)

  37.         visited = [[False]*V for _ in range(V)]
  38.         ans = 0
  39.         for u,v in edges:
  40.                 if visited[u][v] or visited[v][u]:
  41.                         continue
  42.                 remove_edge(u,v,graph)
  43.                 result = find_cycle(graph,u,v)
  44.                 ans += len(result)
  45.                 for i in range(len(result)):
  46.                         for j in range(len(result[i])):
  47.                                 for k in range(j+1,len(result[i])):
  48.                                         visited[result[i][j]][result[i][k]] = True
  49.                                         visited[result[i][k]][result[i][j]] = True

  50.                 add_edge(u,v,graph)

  51.         return ans

  52. V = 17
  53. edges = [
  54.         [0,1],
  55.         [3,0],
  56.         [0,2],
  57.         [3,2],
  58.         [1,2],
  59.         [4,0],
  60.         [3,4],
  61.         [3,5],
  62.         [4,5],
  63.         [2,5],
  64.         [1,5],
  65.         [1,3]
  66. ]

  67. print(graph_triangle(V,edges))
复制代码

回复

使用道具 举报

🔗
Wyf2222 2019-5-30 12:32:41 | 只看该作者
全局:
Guoyi 发表于 2019-5-30 12:25
三个点两两之间有一条边这种

thanks
这样的话,我觉得应该可以找长度为3的cycle, bfs based。
能否请教你说的两种解法的思路呢?
回复

使用道具 举报

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

本版积分规则

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