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

狗家VO面经

🔗
匿名用户-1P0BM  2021-5-9 00:09:45 |倒序浏览

2021(4-6月) 码农类General 硕士 全职@google - 内推 - Onsite 视频面试  | | Pass | 在职跳槽

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

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

x
上个月底面的狗家L4,贡献一下面经:
您好!
本帖隐藏的内容需要积分高于 50 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 50 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies

希望能对大家有帮助,顺便求个大米 谢谢!!











评分

参与人数 20大米 +49 收起 理由
EmanekaT + 2 很有用的信息!
lintc + 1 给你点个赞!
北门炒面 + 1 十分详细,楼主辛苦了!!谢谢!
guanhoo + 2 很有用的信息!
cimy璇 + 3 很有用的信息!

查看全部评分


上一篇:c3.ai onsite 四轮
下一篇:巨硬三月底Hiring Event
地里匿名用户
推荐
匿名用户-1P0BM  2021-5-10 08:14:56
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies

评分

参与人数 2大米 +4 收起 理由
jasonyang04 + 1 给你点个赞!
bryanjhy + 3 给你点个赞!

查看全部评分

回复

使用道具 举报

推荐
hjldtc 2021-5-9 03:16:19 | 只看该作者
全局:
Linked list 找cicle可以用hare and tortoise
回复

使用道具 举报

推荐
hjldtc 2021-5-9 04:35:59 | 只看该作者
全局:
第四轮 顺便求一下第二问的input是什么type呀 为啥有两个C呀

  1. class AddRoad:
  2.     def union(self, a,b,parent):
  3.         parent[self.find(a,parent)] = self.find(b,parent)
  4.     def find(self, a, parent):
  5.         if parent[a] != a:
  6.             parent[a] = self.find(parent[a],parent)
  7.         return parent[a]
  8.     def __init__(self, matrix):
  9.         n,m=len(matrix),len(matrix[0])
  10.         visited = set()
  11.         def dfs(x,y,ids):
  12.             self.union((x,y),ids,self.parent)
  13.             visited.add((x,y))
  14.             for dx,dy in [(0,1),(1,0),(-1,0),(0,-1)]:
  15.                 nx,ny=x+dx,y+dy
  16.                 if 0<=nx<n and 0<=ny<m and matrix[nx][ny] == 1 and (nx,ny) not in visited:
  17.                     dfs(nx,ny,ids)

  18.         self.matrix = matrix
  19.         # use -2, -1 to represent root for 2 island
  20.         ids = -2
  21.         self.parent = {-1:-1,-2:-2}
  22.         for i in range(n):
  23.             for j in range(m):
  24.                 self.parent[(i,j)] = (i,j)
  25.         for i in range(n):
  26.             for j in range(m):
  27.                 if matrix[i][j]:
  28.                     dfs(i,j,ids)
  29.                     ids += 1
  30.         self.island1 = -1
  31.         self.island2 = -2
  32.    
  33.     def addRoad(self, x, y):
  34.         if self.matrix[x][y] == 1:
  35.             return False
  36.         self.matrix[x][y] = 1
  37.         for dx,dy in [(0,1),(1,0),(-1,0),(0,-1)]:
  38.             nx,ny=x+dx,y+dy
  39.             if 0<=nx<n and 0<=ny<m and self.matrix[nx][ny] == 1:
  40.                 self.union((nx,ny),(x,y))
  41.         return self.find(self.island1, self.parent) == self.find(self.island2, self.parent)
复制代码
回复

使用道具 举报

🔗
hjldtc 2021-5-9 03:55:15 | 只看该作者
全局:
第一轮

  1. class Node:
  2.     def __init__(self,value,secretValue,next=None):
  3.         self.value = value
  4.         self.secretValue = secretValue
  5.         self.next = next
  6. def nextSecretValue(head):
  7.     node = head
  8.     while node:
  9.         if node.next:
  10.             node.secretValue = hash(node.value + node.next.secretValue)
  11.         else:
  12.             node.secretValue = hash(node.value)
  13.     return head
  14. def circle(head):
  15.     slow,fast = head,head
  16.     while fast and fast.next:
  17.         if fast == slow:
  18.             return True
  19.         fast = fast.next.next
  20.         slow = slow.next
  21.     return False
复制代码
回复

使用道具 举报

🔗
hjldtc 2021-5-9 04:12:55 | 只看该作者
全局:
第三题

  1. def minimum_distance(matrix,start,end):
  2.     n,m=len(matrix),len(matrix[0])
  3.     q = deque()
  4.     visited = set()
  5.     for i in range(n):
  6.         for j in range(m):
  7.             if matrix[i][j] == 1:
  8.                 q.append((i,j))
  9.                 visited.add((i,j))
  10.                 matrix[i][j] = -1
  11.     graph = [[0] * m for _ in range(n)]
  12.     step = 0
  13.     while q:
  14.         for _ in range(len(q)):
  15.             x,y = q.popleft()
  16.             graph[x][y] = step
  17.             for dx,dy in [(0,1),(1,0),(-1,0),(0,-1)]:
  18.                 nx,ny=x+dx,y+dy
  19.                 if 0<=nx<n and 0<=ny<m and (nx,ny) not in visited:
  20.                     q.append((nx,ny))
  21.                     visited.add((nx,ny))
  22.         step += 1
  23.     x,y=start
  24.     heap = [(-graph[x][y],x,y)]
  25.     distance = {(x,y):graph[x][y]}
  26.     while heap:
  27.         dis,x,y = heappop(heap)
  28.         if (x,y) == end:
  29.             return -dis
  30.         dis *= -1
  31.         for dx,dy in [(0,1),(1,0),(-1,0),(0,-1)]:
  32.             nx,ny=x+dx,y+dy
  33.             if 0<=nx<n and 0<=ny<m and matrix[nx][ny] != -1:
  34.                 new_dis = min(graph[nx][ny], dis)
  35.                 if (nx,ny) not in distance or distance[(nx,ny)] < new_dis:
  36.                     heappush(heap, (-new_dis, nx,ny))
  37.                     distance[(nx,ny)] = new_dis
  38.     return -1
复制代码
回复

使用道具 举报

🔗
kashimoto 2021-5-9 05:23:58 | 只看该作者
全局:
hjldtc 发表于 2021-5-9 03:55
第一轮
[mw_shl_code=python,true]
class Node:

计算当前节点的时候 node.next.secretValue 还没有被计算过吧
题主提到了递归 应该是递归到tail然后bottom-up更新的哇
回复

使用道具 举报

🔗
kashimoto 2021-5-9 05:36:32 | 只看该作者
全局:
本帖最后由 kashimoto 于 2021-5-9 05:40 编辑

--第四轮是不是两个set更方便一点? 每次添加一个点 看这个点的neighbor能不能是不是既有第一个岛的也有第二个岛的--
忽略我吧 union find规范一点

回复

使用道具 举报

全局:
kashimoto 发表于 2021-05-08 14:23:58
计算当前节点的时候 node.next.secretValue 还没有被计算过吧
题主提到了递归 应该是递归到tail然后bottom-up更新的哇
好像有道理 从后往前更新 要递归
回复

使用道具 举报

🔗
sas鹰uke 2021-5-9 11:40:12 | 只看该作者
全局:
都好难。。。请问第三题的TC多少?所有点的bfs感觉复杂度很高啊
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-1P0BM  2021-5-9 11:54:35
sas鹰uke 发表于 2021-5-9 11:40
都好难。。。请问第三题的TC多少?所有点的bfs感觉复杂度很高啊

可以从所有等于1的点开始bfs update 所有0 到1的最近距离,bfs的TC就是 row * col。

评分

参与人数 1大米 +3 收起 理由
bryanjhy + 3 给你点个赞!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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