leetcode刷题-52N皇后2
2024-09-01 14:35:23
题目
n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给定一个整数 n,返回 n 皇后不同的解决方案的数量。
思路
与51题完全一致
实现
class Solution:
def totalNQueens(self, n: int) -> int:
table = [[False for _ in range(n)] for j in range(n)]
result = [['.' for _ in range(n)] for j in range(n)]
answer = 0
checkflag = False def put(i, j):
tmp = []
tmp1 = i + j
tmp2 = i - j
for l in range(n):
for m in range(n):
if l == i or m == j or l + m == tmp1 or l - m == tmp2:
if table[l][m] == False:
table[l][m] = True
tmp.append((l, m))
result[i][j] = "Q"
return tmp def remove(i, j, tmp):
for x in tmp:
l = x[0]
m = x[1]
table[l][m] = False
result[i][j] = "." def valid(i, j):
if table[i][j] is False:
return True def check(i, j):
if i == n-1:
nonlocal answer
answer += 1
nonlocal checkflag
checkflag = True
else:
for x in range(n):
backtrace(i + 1, x) def backtrace(row, col):
#if result[row][col] == '.':
if valid(row, col):
tmp = put(row, col)
check(row, col)
remove(row, col, tmp) for t in range(n):
backtrace(0, t)
checkflag = False
table = [[False for _ in range(n)] for j in range(n)]
result = [['.' for _ in range(n)] for j in range(n)]
return answer
最新文章
- IOS学习之路--OC的基础知识
- Uva 524 Prime Ring
- Struts2 Convention插件的使用(1)
- Android核心分析之二十三Andoird GDI之基本原理及其总体框架
- UI3_视图切换
- JS定位PDF页码。
- 【转】myeclipse 上安装 Maven3
- Mysql ID重新排列
- IIS- ASP站点布署时查看ASP错误信息
- Flex基础相关
- MyBatis和SpringMVC集成事务在Junit测试下有效但是在实际项目无效的问题
- 关于 BigDecimal处理float、double数据
- ssh登录,爬坑系列
- wince单实例启动
- ubuntu使用抓包工具,charles
- pyton 模块之 pysmb 文件上传(windows)
- 【译】第13节---数据注解-Required
- SpringBoot的搭建
- tornado-模板,转义,上传静态文件
- python traceback捕获并打印异常