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