首页 > 其他分享 >20241202: 52. N 皇后 II

20241202: 52. N 皇后 II

时间:2024-12-02 22:54:13浏览次数:9  
标签:diag2 False ans 52 II diag1 20241202 皇后 col

n 皇后问题 研究的是如何将 n 个皇后放置在 n × n 的棋盘上,并且使皇后彼此之间不能相互攻击。

给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。

 

class Solution:
    def totalNQueens(self, n: int) -> int:
        ans = 0
        col = [False] * n
        diag1 = [False] * (n * 2 - 1)
        diag2 = [False] * (n * 2 - 1)
        def dfs(r: int) -> None:
            if r == n:
                nonlocal ans
                ans += 1  # 找到一个合法方案
                return
            for c, ok in enumerate(col):
                if not ok and not diag1[r + c] and not diag2[r - c]:
                    col[c] = diag1[r + c] = diag2[r - c] = True
                    dfs(r + 1)
                    col[c] = diag1[r + c] = diag2[r - c] = False  # 恢复现场
        dfs(0)
        return ans

 

标签:diag2,False,ans,52,II,diag1,20241202,皇后,col
From: https://www.cnblogs.com/xxlm/p/18582941

相关文章

  • leetcode 1652. 拆炸弹 未解决
    1652.拆炸弹原本是简单题,但是k<0的情况由于选用的方法不好,浪费太多时间了。代码也有很多冗余classSolution{public:vector<int>decrypt(vector<int>&code,intk){intsize=code.size();vector<int>res(size,0);if(k==0)ret......
  • 搜索二维矩阵 II
    编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例1:输入:matrix=[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]],targe......
  • IC Compiler II(ICC II)后端设计流程——超详细
    Preface本文中英文结合(学习一些专有名词),主要介绍ICCII软件进行后端设计的主要流程,在阅读之前需要对数字IC设计流程有一定的了解。逻辑综合相关知识请查看:Synopsys逻辑综合及DesignCompiler的使用(想了解逻辑综合的可以看看这个,但内容较多)数字IC设计整体流程请查看:关于数字IC后......
  • springboot企业合同管理系统-计算机毕业设计源码45527
    目 录摘要1绪论1.1研究背景1.2 研究意义1.3论文结构与章节安排2 企业合同管理系统的设计与实现系统分析2.1可行性分析2.2系统流程分析2.2.1数据增加流程2.2.2数据修改流程2.2.3数据删除流程2.3 系统功能分析2.3.1功能性分析2.4 系统......
  • LeetCode【0265】粉刷房子 II
    本文目录1中文题目2Python求解2.1求解思路2.2涉及方法2.3求解示例2.4Python代码2.5复杂度分析3题目总结1中文题目假如有一排房子共有n幢,每个房子可以被粉刷成k种颜色中的一种。房子粉刷成不同颜色的花费成本也是不同的。需要粉刷所有的房子并且使其相......
  • 【二分查找】力扣 275. H 指数 II
    一、题目二、思路h指数是高引用引用次数,而citations数组中存储的就是不同论文被引用的次数,并且是按照升序排列的。也就是说h指数将整个citations数组分成了两部分,左半部分是不够引用h次的论文,右半部分论文的引用次数都是大于等于h的。因此,可以采用二分查找的......
  • HAL库软件IIC、硬件IIC移植江科大0.96寸OLED屏幕代码;软件I2C和硬件I2C区别
    程序链接:软件IIC链接:https://pan.baidu.com/s/1PoTuWDgO3i-ELu5gbV_vOA?pwd=feee提取码:feee硬件IIC链接:https://pan.baidu.com/s/12v2VeP7-FPFYyziSGsBwdw?pwd=3nhw提取码:3nhw 1.江科大OLED链接:[模块教程]第1期0.96寸OLED显示屏_哔哩哔哩_bilibili江科大的......
  • 7-152 百钱百鸡
    百鸡问题是北魏数学家张丘建在其著作《张丘建算经》中提出的一个世界著名的不定方程问题:“今有鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。凡百钱买鸡百只,问鸡翁母雏各几何。”百钱百鸡问题的白话版:100元钱买100只鸡,公鸡5元1只,母鸡3元1只,小鸡1元3只。问公鸡、母鸡、小鸡各多少只(......
  • LCR 151.彩灯装饰记录III
    题目代码classSolution{publicList<List>levelOrder(TreeNoderoot){if(root==null){returnnewArrayList<>();}Queue<TreeNode>queue=newLinkedList<>();List<List<Integer>>res=newArrayList<>();......
  • ural 1522
    首先推一下柿子,尝试exchangeargument,发现\(A,B,C\)分别为\(a_x+b_x+c_x\),\(\max(a_x+b_x+c_x,\max(a_x+b_x,a_x+a_y)+b_y)+c_y\)。如果\(\max(b_i)\le\min(a_i)\):\(\max(a_x+b_x+c_x,a_x+a_y+b_y)+c_y\)。\(=\max(c_x+b_x,a_y+b_y)+a_x+c_y\)。如果\(\max(b_i)......