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

本版积分规则

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