使用递归填充-Python

时间:2018-12-05 13:16:23

标签: python-3.x recursion backtracking flood-fill

我必须不使用任何模块来递归地解决洪水泛滥的已知问题。

  

我的函数必须接收一个包含“ *”和“。”的“图像”矩阵,以及一个通过行和列指示原点的元组。我们可以假设图像的帧仅填充'*',并且起始点元素等于'。'。该功能必须从一开始就更改为所有“。”。加上“ *”,并按洪水填充规则移动。

所以我写了一个代码来解决这个问题,但是该函数超出了最大递归深度...

我一直在寻找问题,例如2个小时,什么都没有。

这是我的代码:

def f_f(image, start):
    i, j = start[0], start[1]
    f_f_helper(image, i, j)


def f_f_helper(image, i, j):
    if image[i][j] == '.':
        image[i][j] = '*'

    if i > 0:
        f_f_helper(image, i - 1, j)
    if i < len(image) - 1:
        f_f_helper(image, i + 1, j)
    if j > 0:
        f_f_helper(image, i, j - 1)
    if j < len(image[0]) - 1:
        f_f_helper(image, i, j + 1)

还有一件事,如何用大O标记形式正式计算运行时间?

谢谢。

0 个答案:

没有答案