n 皇后问题 研究的是如何将 n 个皇后放置在 n × n 的棋盘上,并且使皇后彼此之间不能相互攻击。
给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。
示例 1:

输入:n = 4 输出:2 解释:如上图所示,4 皇后问题存在两个不同的解法。
示例 2:
输入:n = 1 输出:1
提示:
1 <= n <= 9通过次数
130.8K
提交次数
158.8K
通过率
82.4%
和第51题一样的思路,只不过是返回每一个解变成了返回解的个数。51:N皇后
- class Solution {
- public:
- int queen[10];//每一行皇后的位置
- bool attacked(int row,int col)
- {//判断是否被攻击
- for(int i=0;i
|
- {
- if(col==queen[i]) return true;
- if(row-i==col-queen[i]||row-i==queen[i]-col) return true;
- }
- return false;
- }
- void findspace(int row,int n,int &ans)
- {
- if(row==n)
- {//新的解法
- ans++;
- return ;
- }
- for(int col=0;col
- {
- if(!attacked(row,col))
- {
- queen[row]=col;
- findspace(row+1,n,ans);
- //同一行还有其他解法的时候,queen[row]会被覆盖,所以不需要设queen[row]=0;
- }
- }
- }
- int totalNQueens(int n) {
- memset(queen,0,sizeof(queen));
- int ans=0;
- findspace(0,n,ans);
- return ans;
- }
- };
-
相关阅读:
Acwing 1927 自动补全(知识点:hash,二分,排序)
BERT-MRC论文笔记
【老生谈算法】matlab实现香农编码源码——香农编码
大数据毕业设计Python+Spark知识图谱高考志愿推荐系统 高考数据分析 高考可视化 高考大数据 计算机毕业设计 机器学习 深度学习 人工智能
19.组合模式(Composite)
归并排序与计数排序(含代码)
【单词】【2016】
Open-Sora:开源版的Sora
队列(JAVA)
Nginx(五)
-
原文地址:https://blog.csdn.net/m0_73441691/article/details/133960299