123
返回列表 发新帖
楼主: 匿名
跳转到指定楼层
上一主题 下一主题
收起左侧

狗家onsite 过经

全局:
dengzeyu147 发表于 2019-7-31 07:01
请问生成迷宫的代码 在哪能找到

贴一个我以前写的吧,python的简单版本,没加复杂度控制和奖励 https://leetcode.com/playground/q9kpVPeN
  1. def maze_generator(M, N):
  2.     maze = [[1]*N for _ in range(M)] #prefill maze with 1, which is wall
  3.     def getNeib(i, j, step = 2):
  4.         for x, y in [(i, j+step), (i, j-step), (i+step, j), (i-step, j)]:
  5.             if 0<=x<M and 0<=y<N:
  6.                 yield x, y
  7.     stack = [(0, 0)]
  8.     while stack:
  9.         i, j = stack[-1]
  10.         if maze[i][j] == 1:
  11.             maze[i][j] = 0
  12.         unvisited_neibs = [nei for nei in getNeib(i, j) if maze[nei[0]][nei[1]]==1]
  13.         if len(unvisited_neibs)>0:
  14.             x, y = random.choice(unvisited_neibs)
  15.             maze[(x+i)//2][(y+j)//2] = 0
  16.             stack.append((x, y))
  17.         else:
  18.             stack.pop()
  19.     if maze[-1][-1] != 0: #this is necessary when M or N is even.
  20.         maze[-1][-1] = 0
  21.         if M%2 == 0 and N%2 == 0:
  22.             maze[-1][-2] = 0
  23.     print('\n'.join(str(x) for x in maze))
复制代码


回复

使用道具 举报

🔗
Vickyroot 2019-8-12 11:33:42 | 只看该作者
全局:
一段时间不登录,发现自己掉了好多米
回复

使用道具 举报

🔗
Vickyroot 2019-8-12 11:34:19 | 只看该作者
全局:
祝贺,但是设置好高看不了
回复

使用道具 举报

🔗
EbyccoCheng 2019-8-12 12:29:28 | 只看该作者
全局:
问下哈 第一题是不是新的单词肯定不比老的单词长
比如hello world就是hello变成hi,而不会是hello 变成 mahalo
回复

使用道具 举报

全局:
EbyccoCheng 发表于 2019-8-12 12:29
问下哈 第一题是不是新的单词肯定不比老的单词长
比如hello world就是hello变成hi,而不会是hello 变成 ma ...

长度不一定,新单词可以更长

评分

参与人数 1大米 +1 收起 理由
EbyccoCheng + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

🔗
EbyccoCheng 2019-8-12 12:53:07 | 只看该作者
全局:
blackarrow3542 发表于 2019-8-12 12:42
长度不一定,新单词可以更长

这样啊,那是不是不要求O(1)的space啊
回复

使用道具 举报

🔗
jialujulie 2019-8-12 16:06:18 | 只看该作者
全局:
blackarrow3542 发表于 2019-8-12 12:42
长度不一定,新单词可以更长

lz 是不是lc 833 啊
回复

使用道具 举报

全局:

真的是巴叁叁
回复

使用道具 举报

🔗
5133709085 2019-11-22 00:09:31 | 只看该作者
全局:
借一点点运气,谢谢!
回复

使用道具 举报

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

本版积分规则

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