Follow up for N-Queens problem.

Now, instead outputting board configurations, return the total number of distinct solutions.

class Solution {
public:int totalNQueens(int n) {result = 0;if(n==0) return result;vector<int> flag(n,-1); //每行的Q出现在哪列backTracking(n, flag, 0);return result;}   void backTracking(int n, vector<int>& flag, int depth){ //depth is the line numberif(depth==n){result++;return;}for(int i = 0; i < n; i++){ //traverse columnif(check(n,flag, depth, i)) {flag[depth] = i;backTracking(n,flag,depth+1);flag[depth] = -1; // back track
            }}}bool check(int n, vector<int>& flag, int i, int j){for(int k = 0; k < i; k++){if(flag[k] < 0) continue;//no Q in this columnif(flag[k]==j) return false;//check columnsif(abs(i-k)==abs(j-flag[k])) return false; //check cross lines
        }return true;}
private: int result;
};

转载于:https://www.cnblogs.com/qionglouyuyu/p/4856959.html

52. N-Queens II (Array; Back-Track)相关推荐

  1. Java实现 LeetCode 52 N皇后 II

    52. N皇后 II n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 上图为 8 皇后问题的一种解法. 给定一个整数 n,返回 n 皇后不同的解决方案 ...

  2. LeetCode—52. N皇后 II(困难)

    52. N皇后 II(困难) 题目描述: n 皇后问题研究的是如何将 n 个皇后放置在 n × n 的棋盘上,并且使皇后彼此之间不能相互攻击.即令其中任意两个皇后都不同列.同行和在一条斜线上. 给你一 ...

  3. LeetCode 52.N皇后II

    [LetMeFly]52.N皇后II 力扣题目链接:https://leetcode.cn/problems/n-queens-ii/ n 皇后问题 研究的是如何将n个皇后放置在n×n的棋盘上,并且使 ...

  4. LeetCode 51. N 皇后、52. N 皇后 II

    51. N 皇后 n皇后问题要求皇后放置后,同一行,同一列,同一斜线上不存在其他的皇后即可 采用回溯法解决该问题 同时应该设置一个函数判断当该位置放置皇后后,是否合法 因为是采用回溯法放置皇后,每行只 ...

  5. LeetCode 52. N皇后 II

    https://leetcode-cn.com/problems/n-queens-ii/ 难度:困难   n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻 ...

  6. LeetCode 51. N皇后 / 52. N皇后 II(回溯)

    1. 题目 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 上图为 8 皇后问题的一种解法. 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案 ...

  7. LeetCode每日一题 52. N皇后 II

    题目链接 思路 暴搜 二进制 class Solution {public:vector<int> row, col;int totalNQueens(int n) {int ret= 0 ...

  8. leetcode 52. N皇后 II(回溯)

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

  9. 51. N皇后/52. N皇后 II

    2020-07-29 1.题目描述 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 2.题解 回溯算法 3.代码 class Solution {pu ...

  10. 问题 J: Sequence Problem (II) : Array Practice

    题目描述 整数序列是一串按特定顺序排列的整数,整数序列的长度是序列中整数的个数,不可定义长度为负数的整数序列. 两整数序列A.B的和定义为一个新的整数序列C,序列C的长度是A.B两者中较长的一个,序列 ...

最新文章

  1. Android Studio简单设置
  2. Android 4.4 中 WebView 使用注意事项
  3. 数据丢失与重复_大数据面试题分享-恭喜这位朋友刚毕业拿到了20K
  4. 内部类详解————匿名内部类
  5. 畅通工程(并查集模版题)
  6. 第1章 操作系统引论课后答案
  7. 区块链智能合约----Solidity状态修饰符view、pure
  8. ShareTech大企业邮件服务器系统软件
  9. 最新C++网络编程实践视频教程 陈硕主讲(完整)
  10. 1156 Sexy Primes (20 分)(质数 模拟
  11. 实用Ip、手机、身份证归属地查询API
  12. excel表格打印每页都有表头_教你一招Excel打印技巧:每页有表头标题,阅读起来是真方便...
  13. 如何使用音频转换器将多个音频合并为一个音频
  14. 土豆网、六间房等在线视频FLV文件下载方法
  15. 汉诺塔//河内塔(Tower of Hanoi)
  16. STM32 SPI片选信号拉不高的解决方案
  17. 大学必考计算机软件cad,大学CAD考试试题单选多选作图操作题.doc
  18. vr全景技术开启智能化vr酒店宣传新模式
  19. js事件案例——小人快跑JavaScript
  20. 趣图:菜鸟多线程 vs 老鸟多线程

热门文章

  1. 十进制转bcd码c程序语言,bcd码转换成十进制程序函数
  2. mysql的四大线程_阿里一面就凉了:MySQL+多线程+Redis+算法+网络一个都没说明白...
  3. deeplearning.ai——构建深度神经网络做图像处理
  4. 嫦娥四号生物科普载荷内长出月球第一片植物嫩芽
  5. js 自定义DOM事件
  6. 简单类型参数是值传递,对象参数是引用传递
  7. 史上最全的phpstorm常用配置
  8. Arrays和比较器
  9. 【论文】Realtime lane tracking of curved local road 检测和跟踪功能
  10. C语言基础2-C语言条件结构