Golang | Leetcode Golang题解之第52题N皇后II

题目:

题解:

Go 复制代码
func totalNQueens(n int) (ans int) {
    columns := make([]bool, n)        // 列上是否有皇后
    diagonals1 := make([]bool, 2*n-1) // 左上到右下是否有皇后
    diagonals2 := make([]bool, 2*n-1) // 右上到左下是否有皇后
    var backtrack func(int)
    backtrack = func(row int) {
        if row == n {
            ans++
            return
        }
        for col, hasQueen := range columns {
            d1, d2 := row+n-1-col, row+col
            if hasQueen || diagonals1[d1] || diagonals2[d2] {
                continue
            }
            columns[col] = true
            diagonals1[d1] = true
            diagonals2[d2] = true
            backtrack(row + 1)
            columns[col] = false
            diagonals1[d1] = false
            diagonals2[d2] = false
        }
    }
    backtrack(0)
    return
}
相关推荐
We་ct3 小时前
LeetCode 148. 排序链表:归并排序详解
前端·数据结构·算法·leetcode·链表·typescript·排序算法
x_xbx6 小时前
LeetCode:2. 两数相加
算法·leetcode·职场和发展
_日拱一卒6 小时前
LeetCode:最长连续序列
算法·leetcode·职场和发展
重生之后端学习6 小时前
287. 寻找重复数
数据结构·算法·leetcode·深度优先·图论
fy121638 小时前
GO 快速升级Go版本
开发语言·redis·golang
实心儿儿8 小时前
算法7:两个数组的交集
算法·leetcode·职场和发展
sheeta19988 小时前
LeetCode 每日一题笔记 日期:2025.03.19 题目:3212.统计X和Y频数相等的子矩阵数量
笔记·leetcode·矩阵
Storynone9 小时前
【Day28】LeetCode:509. 斐波那契数,70. 爬楼梯,746. 使用最小花费爬楼梯
python·算法·leetcode
博风10 小时前
算法:双指针解:盛最多水的容器
算法·leetcode
童话ing10 小时前
【Golang】Golang Map数据结构底层原理
数据结构·golang·哈希算法