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

Waymo

全局:

2020(7-9月) 码农类General 博士 全职@google - 内推 - 技术电面 Onsite  | | Other | 在职跳槽

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

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

x
Waymo
1. Given 2 sets of synonymous words, return if 2 sentences are synonymousfollow up: what if synonymous can be multi-w
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
finding out how far does a car go given a series of operations...

评分

参与人数 9大米 +20 收起 理由
yakaqi + 1 给你点个赞!
soliloquyyy + 1 很有用的信息!
csytracy + 1 给你点个赞!
alanwsx + 1 很有用的信息!
AliceLin2019 + 2 很有用的信息!

查看全部评分


上一篇:Stripe店面
下一篇:Argo AI 新鲜面筋
推荐
guiwuji 2020-10-30 10:30:43 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies

评分

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

查看全部评分

回复

使用道具 举报

推荐
fwtan 2021-3-6 21:58:51 | 只看该作者
全局:
对于第二题,其实是不是没有必要用heap, 因为bfs每个位置最多被访问4次,依然是线性时间,用heap理论复杂度反而增加了。
回复

使用道具 举报

🔗
ai322 2020-10-18 20:42:40 | 只看该作者
全局:
什么是waymo呀?
回复

使用道具 举报

🔗
hsierra 2020-10-28 03:50:42 | 只看该作者
全局:
本帖最后由 hsierra 于 2020-10-28 03:57 编辑

请教楼主第二题,with minimum turn, 应该再怎么做呀?
matrix上是带障碍物,只需要避开障碍物吗?
貌似DFS + memoization 就可以?




评分

参与人数 1大米 +2 收起 理由
attar + 2 赞一个!

查看全部评分

回复

使用道具 举报

🔗
chachaOCHT 2020-10-30 21:03:38 | 只看该作者
全局:
请问楼主是全职还是实习
回复

使用道具 举报

🔗
csytracy 2021-1-13 13:03:25 | 只看该作者
全局:
本帖最后由 csytracy 于 2021-1-13 13:05 编辑

求大米:
  1. import numpy as np

  2. import matplotlib.pyplot as plt

  3. def min_turn(map, src, dst, current_direction = None):
  4.     if src == dst:
  5.         return 0, [src]
  6.     m, n = map.shape
  7.     ret = np.inf
  8.     ret_path = []
  9.     for direction in ((1,0), (0,1), (-1,0), (0,-1)):
  10.         loc = (src[0]+direction[0], src[1]+direction[1])
  11.         if loc[0] < 0 or loc[0] >= m or loc[1] < 0 or loc[1] >= n or map[loc[0],loc[1]] != 0:
  12.             continue
  13.         map[loc[0],loc[1]] = -1
  14.         n_turns, path = min_turn(map, loc, dst, direction)
  15.         map[loc[0],loc[1]] = 0
  16.         if direction != current_direction:
  17.             n_turns += 1
  18.         if ret > n_turns:
  19.             ret = n_turns
  20.             ret_path = [src] + path
  21.     return ret, ret_path


  22. map = np.zeros((5,5))
  23. map[1,1] = 1
  24. map[2,2] = 1
  25. map[3,3] = 1
  26. map[3,0] = 1
  27. map[4,1] = 1

  28. n_turns, path = min_turn(map, (1,0), (4,2))
  29. print(n_turns, path)
  30. for p in path:
  31.     map[p[0],p[1]] = -1
  32. plt.figure()
  33. plt.imshow(map)
  34. plt.show()
复制代码







回复

使用道具 举报

无效楼层,该帖已经被删除
无效楼层,该帖已经被删除
🔗
csytracy 2021-1-15 11:26:27 | 只看该作者
全局:
发两个解法
求大米
  1. import heapq
  2. import numpy as np
  3. import matplotlib.pyplot as plt

  4. def min_turn_bfs(map, src, dst):
  5.     if src == dst:
  6.         return 0, [src]
  7.     m, n = map.shape
  8.     q = [(0, (0,0), [src])]
  9.     while len(q) > 0:
  10.         n_turns, current_direction, path = heapq.heappop(q)
  11.         print(q)
  12.         for direction in ((1,0), (0,1), (-1,0), (0,-1)):
  13.             loc = (path[-1][0]+direction[0], path[-1][1]+direction[1])
  14.             if loc[0] < 0 or loc[0] >= m or loc[1] < 0 or loc[1] >= n or map[loc[0],loc[1]] != 0 or loc in path: # path can be optimized with set
  15.                 continue
  16.             n_turns_next = n_turns
  17.             if direction != current_direction:
  18.                 n_turns_next += 1
  19.             path_next = path + [loc]
  20.             if loc == dst:
  21.                 return n_turns_next, path_next
  22.             heapq.heappush(q, (n_turns_next, direction, path_next))
  23.     return np.inf, []




  24. def min_turn_dfs(map, src, dst, current_direction = None):
  25.     if src == dst:
  26.         return 0, [src]
  27.     m, n = map.shape
  28.     ret = np.inf
  29.     ret_path = []
  30.     for direction in ((1,0), (0,1), (-1,0), (0,-1)):
  31.         loc = (src[0]+direction[0], src[1]+direction[1])
  32.         if loc[0] < 0 or loc[0] >= m or loc[1] < 0 or loc[1] >= n or map[loc[0],loc[1]] != 0:
  33.             continue
  34.         map[loc[0],loc[1]] = -1
  35.         n_turns, path = min_turn(map, loc, dst, direction)
  36.         map[loc[0],loc[1]] = 0
  37.         if direction != current_direction:
  38.             n_turns += 1
  39.         if ret > n_turns:
  40.             ret = n_turns
  41.             ret_path = [src] + path
  42.     return ret, ret_path


  43. map = np.zeros((5,5))
  44. map[1,1] = 1
  45. map[2,2] = 1
  46. map[3,3] = 1
  47. map[3,0] = 1
  48. map[4,1] = 1

  49. n_turns, path = min_turn_bfs(map, (1,0), (4,2))
  50. print(n_turns, path)
  51. for p in path:
  52.     map[p[0],p[1]] = -1
  53. plt.figure()
  54. plt.imshow(map)
  55. plt.show()
复制代码

评分

参与人数 2大米 +2 收起 理由
badam2020 + 1 给你点个赞!
MuhammadPig + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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