从左上角洪泛,改了几格

👁️ 0 人浏览 💬 0 人评论 ❤️ 添加收藏

(0,0) 出发,把连着的 1 全改成 2。运行下面这段程序:

def flood(g, si, sj, new):
    m = len(g)
    n = len(g[0])
    old = g[si][sj]
    if old == new:
        return 0
    st = [(si, sj)]
    g[si][sj] = new
    k = 1
    while st:
        x, y = st.pop()
        for dx, dy in ((1, 0), (-1, 0), (0, 1), (0, -1)):
            a, b = x + dx, y + dy
            if 0 <= a < m and 0 <= b < n and g[a][b] == old:
                g[a][b] = new
                st.append((a, b))
                k += 1
    return k

g = [[1, 1, 0, 0], [1, 0, 0, 1], [0, 0, 1, 0], [1, 0, 0, 0]]
print(flood(g, 0, 0, 2))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论