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

uber电面

全局:

2019(1-3月) 码农类General 硕士 全职@uber - 猎头 - 技术电面  | | Fail | 在职跳槽

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

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

x

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


很简单的题,只怪交流不顺

评分

参与人数 2大米 +13 收起 理由
匿名用户-Y8LQH + 10
financeFree + 3 很有用的信息!

查看全部评分


上一篇:热乎乎的阿度比店面
下一篇:Marlabs面经
🔗
totoro668 2019-5-15 08:32:54 | 只看该作者
本楼:
全局:
就是BFS?
回复

使用道具 举报

🔗
Shelly0507 2019-5-16 14:00:01 | 只看该作者
全局:
用bfs,把坐标和路径的tuple放入queue中

  1. from collections import deque

  2. def findShortestPath(board, start, end):
  3.     visited = set()
  4.     visited.add(start)
  5.     queue = deque([])
  6.     queue.append((start, [start]))
  7.     while queue:
  8.         cur, path = queue.popleft()
  9.         cx, cy = cur
  10.         if cur == end:
  11.             return path
  12.         for nx, ny in [(cx + 1, cy), (cx - 1, cy), (cx, cy + 1), (cx, cy - 1)]:
  13.             if 0 <= nx < len(board) and 0 <= ny < len(board[0]) and board[nx][ny] == 'w' and (nx, ny) not in visited:
  14.                 path.append((nx, ny))
  15.                 queue.append(((nx, ny), list(path)))
  16.                 visited.add((nx, ny))
  17.     return []

  18.    

  19. if __name__ == '__main__':
  20.     board = [['w', 'w', 'w', 'w'], ['b', 'w', 'w', 'b'], ['b', 'b', 'w', 'b'], ['w', 'w', 'w', 'b']]
  21.     print findShortestPath(board, (0, 0), (3, 0))
  22.    
  23. # Output:
  24. # [(0, 0), (0, 1), (1, 1), (1, 2), (2, 2), (3, 2), (3, 1), (3, 0)]
复制代码
回复

使用道具 举报

🔗
taixingbi 2019-5-28 08:52:50 | 只看该作者
全局:
如果是最短路径的话,好像你的程序没有这个功能哦。 只是路径而已!
回复

使用道具 举报

🔗
yyoung 2019-6-10 07:02:38 | 只看该作者
全局:
taixingbi 发表于 2019-5-28 08:52
如果是最短路径的话,好像你的程序没有这个功能哦。 只是路径而已!

用bfs搜出来的就是最短路径吧
回复

使用道具 举报

🔗
yyoung 2019-6-10 07:05:37 | 只看该作者
全局:
不过你每次把路径存起来时间和空间复杂度有点高,可以考虑用一个map记录每个点的上一个点
回复

使用道具 举报

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

本版积分规则

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