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
}
相关推荐
王老师青少年编程2 小时前
2026年9月GESP真题及题解(C++八级):末班车
c++·题解·真题·gesp·八级·2026年9月·末班车
blxr_4 小时前
力扣hot100爬楼梯https://leetcode.cn/problems/climbing-stairs/
算法·leetcode·职场和发展
EatFan5 小时前
Go语言全栈实战:基于 Gin + Vue + JWT + RBAC 从零搭建前后端分离权限管理系统
vue.js·golang·go·vue·gin·jwt·rbac
ZealSinger5 小时前
Go slog生产落地LevelVar与共存
开发语言·后端·golang·go
Navigator_Z5 小时前
LeetCode //C - 1275. Find Winner on a Tic Tac Toe Game
c语言·算法·leetcode
丹宇码农5 小时前
Go 与 Python 协程(Coroutine)对比演示项目
开发语言·python·golang
ttwuai6 小时前
Go开源后台管理系统推荐:3个官方仓库怎么按技术栈和适用边界比较?
开发语言·golang·开源
All for pursuit.7 小时前
【分治-2】215.数组中的第K个最大元素
数据结构·c++·算法·leetcode
茉莉玫瑰花茶8 小时前
GO [ 并发 · 调度器 ]
开发语言·后端·golang
恋喵大鲤鱼8 小时前
go list command
golang·list