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
}
相关推荐
<但凡.5 分钟前
题海拾贝:力扣 138.随机链表的复制
数据结构·算法·leetcode
随心Coding26 分钟前
【零基础入门Go语言】错误处理:如何更优雅地处理程序异常和错误
开发语言·后端·golang
fks1431 小时前
leetcode 121. 买卖股票的最佳时机
leetcode
咸甜适中1 小时前
go语言gui窗口应用之fyne框架-动态添加、删除一行控件(逐行注释)
开发语言·后端·golang
梁雨珈2 小时前
Groovy语言的安全开发
开发语言·后端·golang
Bran_Liu2 小时前
【LeetCode 刷题】栈与队列-队列的应用
数据结构·python·算法·leetcode
沈霁晨3 小时前
Perl语言的语法糖
开发语言·后端·golang
嘻嘻哈哈樱桃3 小时前
前k个高频元素力扣--347
数据结构·算法·leetcode
DevOpsDojo3 小时前
HTML语言的数据结构
开发语言·后端·golang
MrZhangBaby3 小时前
SQL-leetcode—1158. 市场分析 I
java·sql·leetcode