3274.检查棋盘方格颜色是否相同
链接:3274.检查棋盘方格颜色是否相同
难度:Easy
标签:数学、字符串
简介:如果这两个方格颜色相同,返回 true,否则返回 false。
题解 1 - python
- 编辑时间:2024-12-03
- 执行用时:38ms
- 内存消耗:16.98MB
- 编程语言:python
- 解法介绍:获取坐标值直接判断
class Solution:
def totalNQueens(self, n: int) -> int:
rows, cols, k1, k2 = [False] * n, [False] * n, [False] * (n * 3), [False] * (n * 3)
tok1 = lambda i, j: n - i - j
tok2 = lambda i, j: n - i + j
res = 0
def dfs(i: int, j: int, cnt: int):
nonlocal res
if i == n:
res += cnt == 0
return
if j == n:
dfs(i + 1, 0, cnt)
return
dfs(i, j + 1, cnt)
if not rows[i] and not cols[j] and not k1[tok1(i, j)] and not k2[tok2(i, j)]:
rows[i] = cols[j] = k1[tok1(i, j)] = k2[tok2(i, j)] = True
dfs(i, j + 1, cnt - 1)
rows[i] = cols[j] = k1[tok1(i, j)] = k2[tok2(i, j)] = False
dfs(0, 0, n)
return res