求助关于dfs的问题!!!有偿有偿

def dfs(a, i, j):
    global flag
    if i == 0&nbs***bsp;j == 0&nbs***bsp;i == n - 1&nbs***bsp;j == m - 1:
        flag = 1
    a[i][j] = "."
    for x, y in [(i + 1, j), (i - 1, j), (i, j + 1), (i, j - 1), (i - 1, j - 1), (i - 1, j + 1), (i + 1, j - 1),
                 (i + 1, j + 1)]:
        if 0 <= x and 0 <= y and a[x][y] == "#":
            dfs(a, x, y)

n, m = map(int, input().split())
s = []
for i in range(n):
    p = list(map(str, input()))
    s.append(p)
a = [[0] * 300 for i in range(300)]
for i in range(n):
    for j in range(m):
        a[i][j] = s[i][j]

h, l = len(s), len(s[0])
flag = 0
count = 0
if h == 0&nbs***bsp;l==0:
    print(0)
for i in range(h):
    for j in range(l):
        if a[i][j] == "#":
            flag == 0
            dfs(a, i, j)
            if flag == 0:
                count += 1
print(count)
这道题我的思路是直接暴搜dfs,然后判断边界条件就行。可是我这个代码只能跑25%。我不理解,或许有没有大佬能看一下我代码的问题!(有偿)
https://ac.nowcoder.com/acm/contest/41/H#学习路径#
全部评论
刚开始的问题是数组越界,我就加了个300*300的范围(加的方法还是现学的,见笑了)
点赞 回复 分享
发布于 2021-12-22 11:20

相关推荐

rndguy:爆杀!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务