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

上图为 8 皇后问题的一种解法。给定一个整数 n,返回 n 皇后不同的解决方案的数量。
示例: 输入:
输出:
解释: 皇后问题存在如下两个不同的解法。
[
[".Q..", // 解法 1
"…Q",
"Q…",
"..Q."],
["..Q.", // 解法 2
"Q…",
"…Q",
".Q.."]
]
【思路】回溯法继续
class Solution {
public:
    void solve(vector<bool>& cols_, vector<bool>& diag1s_, vector<bool>& diag2s_, int n, int row){
        if(row == n){
            count ++;
            return;
        }
        for(auto col = ; col < n; col++){
            int ll = row + col;
            int rr = row - col + n - ;
            if (cols_[col] && diag1s_[ll] && diag2s_[rr]){
                cols_[col] = false;
                diag1s_[ll] = false;
                diag2s_[rr] = false;
                solve(cols_, diag1s_, diag2s_, n, row+);
                cols_[col] = true;
                diag1s_[ll] = true;
                diag2s_[rr] = true;
            }
        }
    }
    int totalNQueens(int n) {
        vector<bool> cols_(n, true);
        vector<bool> diag1s_(*n-, true);
        vector<bool> diag2s_(*n-, true);
        solve(cols_, diag1s_, diag2s_, n, );
        return count;
    }
private:
    int count = ;
};
【LeetCode 】N皇后II的更多相关文章
- Leetcode之回溯法专题-52. N皇后 II(N-Queens II)
		Leetcode之回溯法专题-52. N皇后 II(N-Queens II) 与51题的代码80%一样,只不过52要求解的数量,51求具体解,点击进入51 class Solution { int a ... 
- Java实现 LeetCode 52  N皇后 II
		52. N皇后 II n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 上图为 8 皇后问题的一种解法. 给定一个整数 n,返回 n 皇后不同的解决方案 ... 
- leetcode 51. N皇后 及 52.N皇后 II
		51. N皇后 问题描述 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 上图为 8 皇后问题的一种解法. 给定一个整数 n,返回所有不同的 n 皇后 ... 
- [LeetCode] Palindrome Partitioning II 解题笔记
		Given a string s, partition s such that every substring of the partition is a palindrome. Return the ... 
- 【leetcode-51,52】 N皇后,N皇后 II
		N皇后(hard) n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 上图为 8 皇后问题的一种解法. 给定一个整数 n,返回所有不同的 n 皇后问题 ... 
- [leetcode]Word Ladder II @ Python
		[leetcode]Word Ladder II @ Python 原题地址:http://oj.leetcode.com/problems/word-ladder-ii/ 参考文献:http://b ... 
- LeetCode:课程表II【210】
		LeetCode:课程表II[210] 题目描述 现在你总共有 n 门课需要选,记为 0 到 n-1. 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一 ... 
- LeetCode:全排列II【47】
		LeetCode:全排列II[47] 参考自天码营题解:https://www.tianmaying.com/tutorial/LC47 题目描述 给定一个可包含重复数字的序列,返回所有不重复的全排列 ... 
- LeetCode:子集 II【90】
		LeetCode:子集 II[90] 题目描述 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: [1,2,2] 输出: ... 
- [LeetCode]丑数 II&C++中priority_queue和unordered_set的使用
		[LeetCode]丑数 II&C++中priority_queue和unordered_set的使用 考虑到现实因素,LeetCode每日一题不再每天都写题解了(甚至有可能掉题目?--)但对 ... 
随机推荐
- Day3-A-Problem H. Monster Hunter HDU6326
			Little Q is fighting against scary monsters in the game ``Monster Hunter''. The battlefield consists ... 
- 前端学习笔记系列一:14 vue3.X中alias的配置
			第一步: 第二步: // vue.config.js module.exports = { configureWebpack: { resolve: { alias: { 'assets': '@/a ... 
- JuJu团队1月4号工作汇报
			JuJu团队1月4号工作汇报 JuJu Scrum 团队成员 今日工作 剩余任务 困难 飞飞 将model嵌入GUI 美化UI 无 婷婷 调试代码 提升acc 无 恩升 -- 写python版本的 ... 
- 编程练习:实现树的层次遍历 (CVTE笔试)
			直接层次遍历是比较简单的,但是题目要求的分层打印,这就变得稍微有些麻烦 我是采用两个队列的方法实现. 1.将树结构入队列1. 2.当队列1和队列2都不为空的时候,则一直循环. 3.当队列1不为空的时候 ... 
- Kubernetes——命令行操作
			如果集群初始化失败需要的操作: master: kubeadm reset #回答y 执行一条它提示给你的iptables命令即可 node: systemctl stop kubelet ... 
- phpstudy后门漏洞复现php5.2
			前段时间phpstudy被人发现某些版本存在后门,许多人就这样被当作肉鸡长达两年之久 后门隐藏在程序自带的php的php_xmlrpc.dll模块 影响的版本:phpstudy2016和2018 在H ... 
- C++中的简单继承
			Father.cpp: #include<iostream> using namespace std; class Father { protected: int width; int h ... 
- Concurrent包下用过哪些类?
			1.executor接口,使用executor接口的子接口ExecutorService用来创建线程池2.Lock接口下的ReentrantLock类,实现同步,比如三个线程循环打印ABCABCABC ... 
- MyBatis笔记(一)
			MyBatis学习随笔 第一个MyBatis项目 创建项目 导入maven依赖,根据需要选择性添加mysql/oracle,spring,spring-mybatis等依赖,这里就不一一列出了 < ... 
- python正则表达式匹配多行
			参数re.S jsProp = 'b' fpData = '''var a = []; var b = []; var c = [];''' .*是尽可能匹配多的 searchResult = r ... 
