这是我的代码,想知道为什么它会变成无限循环?谢谢。你知道吗
class Solution(object):
def Valid(self,result):
currentX = len(result) - 1
currentY = result[-1]
if currentX == 0:
return True
for i in range(0, len(result) - 1):
if result[i] == currentY:
return False
elif abs(i - currentX) == abs(result[i] - currentY):
return False
return True
def NQueens(self, result):
if result == []:
row = 0
else:
row = len(result)
for col in range(0, 8):
result.append(col)
if self.Valid(result) == True:
print "check valid ok", row, col, result
if row == 7:
print "result ok", result
else:
self.NQueens(result)
result.pop(-1)
return
if __name__ == "__main__":
s = Solution()
s.NQueens([])
提前谢谢, 林
你只是找到了所有的解决方案(你的验证代码有缺陷,所以它们是一大堆!)。 当找到第一个结果时,您可能也想退出搜索。。。你知道吗
要修复有效函数:
相关问题 更多 >
编程相关推荐