N皇后II(回溯算法)
2023-12-13 06:46:06
n?皇后问题 研究的是如何将 n?个皇后放置在 n × n 的棋盘上,并且使皇后彼此之间不能相互攻击。
给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。
要求:使用回溯算法设计程序
示例 1:
输入:
4
输出:
2
解释:如上图所示,4 皇后问题存在两个不同的解法。
输入:
1
输出:
1
def totalNQueens(n):
columns = set()
diagonal1 = set()
diagonal2 = set()
def backtrack(rowNum):
if rowNum == n:
return 1
else:
count = 0
for column in range(n):
if column in columns or rowNum - column in diagonal1 or rowNum + column in diagonal2:
continue
columns.add(column)
diagonal1.add(rowNum - column)
diagonal2.add(rowNum + column)
count += backtrack(rowNum + 1)
columns.remove(column)
diagonal1.remove(rowNum - column)
diagonal2.remove(rowNum + column)
return count
return backtrack(0)
n = eval(input())
print(totalNQueens(n))
文章来源:https://blog.csdn.net/m0_73811154/article/details/134844330
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!