我必须不使用任何模块来递归地解决洪水泛滥的已知问题。
我的函数必须接收一个包含“ *”和“。”的“图像”矩阵,以及一个通过行和列指示原点的元组。我们可以假设图像的帧仅填充'*',并且起始点元素等于'。'。该功能必须从一开始就更改为所有“。”。加上“ *”,并按洪水填充规则移动。
所以我写了一个代码来解决这个问题,但是该函数超出了最大递归深度...
我一直在寻找问题,例如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标记形式正式计算运行时间?
谢谢。