<
查看: 1609| 回复: 4
收起左侧

[其他] 开帖记录一下刷题

craiglin1992 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   19
100%
0%
0

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

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

x

开帖记录一下刷题进度,也给自己点motivation. 有的题不在leetcode上也能写个solution

上一篇:有道关于图的OA题没做出来,undirected graphs求unreachable nodes个数,求大神帮助!
下一篇:[LC周赛赛后发布会] Weekly Contest 380
 楼主| craiglin1992 2024-1-13 15:30:04 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   19
100%
0%
0
本帖最后由 craiglin1992 于 2024-1-12 23:33 编辑

题目是这位大神发的面经 https://www.1point3acres.com/bbs/thread-522204-1-1.html,自己撸了一个


from collections import deque


def findShortestPath(bank: list[list[str]]):
    # We can start from all Gs and keep pushing out one "layer" at a time
    if len(bank) < 2 or len(bank[0]) < 2:
        raise Exception("illegal input")
    row = len(bank)
    height = len(bank[0])

    queue = deque()  # (x, y, distance)
    for i in range(1, row - 1):
        for j in range(1, height - 1):
            if bank[i][j] == "G":
                queue.append((i, j, 0))

    while len(queue) > 0:
        (i, j, distance) = queue.popleft()
        new_distance = distance + 1
        for tra_i, tra_j in [(i + 1, j), (i - 1, j), (i, j + 1), (i, j - 1)]:
            if bank[tra_i][tra_j] == " ":
                bank[tra_i][tra_j] = new_distance
                queue.append((tra_i, tra_j, new_distance))


bank = [
    ["W", "W", "W", "W", "W"],
    ["W", " ", "G", " ", "W"],
    ["W", " ", "G", " ", "W"],
    ["W", " ", " ", " ", "W"],
    ["W", "W", "W", "W", "W"],
]

findShortestPath(bank)

print(bank)
回复

使用道具 举报

suifeng2006 2024-1-13 19:42:26 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   530
66%
34%
277
问题是现在刷题还有用吗?
回复

使用道具 举报

 楼主| craiglin1992 2024-1-14 07:26:15 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   19
100%
0%
0
suifeng2006 发表于 2024-1-13 03:42
问题是现在刷题还有用吗?

也没啥其他办法啊!有啥好点子讨论讨论
回复

使用道具 举报

本楼:   👍  0
0%
0%
0   👎
全局:   0
0%
0%
0
除了刷题 还有什么有用?
回复

使用道具 举报

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

本版积分规则

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