34-N皇后问题 II

根据n皇后问题,现在返回n皇后不同的解决方案的数量而不是具体的放置布局。

样例

比如n=4,存在2种解决方案

标签

递归

思路

参考http://www.cnblogs.com/libaoquan/p/7073252.html

code

class Solution {
public:/*** Calculate the total number of distinct N-Queen solutions.* @param n: The number of queens.* @return: The total number of distinct solutions.*/int totalNQueens(int n) {// write your code hereif(n == 1) {return 1;}else if(n < 4) {return 0;}int result = 0;int i=0, row=0, col=0, j=0, k=0;int *pCheckerboard = new int[n];for(i=0; i<n; i++) {pCheckerboard[i] = -1;}while(row < n) {while(col < n) {if(canPlace(row, col, n, pCheckerboard)) {pCheckerboard[row] = col;col = 0;break;}else {col++;}}if(pCheckerboard[row] == -1) {if(row == 0) {break;}else {row--;col = pCheckerboard[row] + 1;pCheckerboard[row] = -1;continue;}}if(row == n-1) {result++;col = pCheckerboard[row] + 1;pCheckerboard[row] = -1;continue;}row++;}delete[] pCheckerboard;return result;}int canPlace(int row, int col, int n, int *pCheckerboard) {int i;for(i=0; i<n && i!=row; i++) {if(pCheckerboard[i] == col) {return 0;}if(abs(row-i) == abs(col-pCheckerboard[i])) {return 0;}}return 1;}
};

转载于:https://www.cnblogs.com/libaoquan/p/7074212.html

lintcode-34-N皇后问题 II相关推荐

  1. LintCode 434. 岛屿的个数II(并查集)

    文章目录 1. 题目 2. 解题 1. 题目 给定 n, m, 分别代表一个二维矩阵的行数和列数, 并给定一个大小为 k 的二元数组A. 初始二维矩阵全0. 二元数组A内的k个元素代表k次操作, 设第 ...

  2. LintCode 1652. 区间异或 II

    1. 题目 给定数组 A(下标从0到n-1,n为数组长度),和一个查询列表. 每一项查询包括两个整数 i 和 k. 对于每次查询,计算Ai, A(i + 1), ..., A(i+k-1)的异或值.结 ...

  3. LintCode解题目录

    看见 LintCode 的代码能力测试CAT(Coding Ability Test)挺好,有倒计时,挺有面试紧迫感.做个记录. 另有本人 LeetCode解题目录.<程序员面试金典>解题 ...

  4. 主元素、主元素II、主元素III

    写在前面 这类题目之前还真没接触过,没什么好的思路.不过看要求又是一道考虑时间复杂度的问题,需要掂量(考虑)一下自己的算法有没有达到要求.根据自己目前的能力写出来的算法还真没做到O(n)的时间复杂度, ...

  5. Bentley.HAMMER.XM.v08.09.400.34.zip

    3DQuickMold 2007 SP1.0 for SolidWorks2007.rar Bentley.HAMMER.XM.v08.09.400.34.zip COADE.CAESAR.II.V5 ...

  6. 数据结构与算法题目及C++解答

    前言 题目主要按照类型进行整理,包括leetcode,nowcoder等网站,对于可以使用多种方法的题目,不重复列举.推荐书籍<数据结构与算法分析--C++语言描述>第四版. 本文中所有源 ...

  7. 【目标检测_概述】recent advances in deep learning for object detection_2019

    文章目录 Abstract 1.Introduction 2. Problem Setting 3.Detection Components 3.1 Detection Settings 3.2 De ...

  8. 剑指offer做题记录

    1. 剑指 Offer 03. 数组中重复的数字   力扣 class Solution { public:int findRepeatNumber(vector<int>& nu ...

  9. 【航线运输驾驶员理论考试】操作程序

    文章目录 1.Which altitude is appropriate for the floor of Class A airspace?(A类空域的下限高度为) 2.Which altitude ...

最新文章

  1. android手机上的ancs,Android BLE开发之操作IOS ANCS
  2. nethogs 查看 Linux 进程的网络使用
  3. 五. H.264的码流封装格式
  4. [转]如何解决:Android中 Error generating final archive: Debug Certificate expired on 10/09/18 16:30 的错误...
  5. java 扩展数据类型_java数据类型及其拓展
  6. LeetCode --- Validate Binary Search Tree
  7. Akka并发编程——第三节:Actor模型(二)
  8. Go语言字符串和正则表达式
  9. ps3无线无法与服务器通信,psp上网出现无法与服务器通信(8001006F)
  10. ajax html页面传值乱码,jQuery Ajax传值到Servlet出现乱码问题的解决方法
  11. TypeSrcript如何引入第三方库 如果加d.ts以及async await如何使用 demo,只有代码,文字后续补充...
  12. 了解Java密码扩展的基础
  13. CHIL-ORACLE-创建视图
  14. python导入表格数据混乱_Python按行打乱Excel表格数据
  15. shell 获取当前时间
  16. 五人合伙最佳股份分配_五人合伙股份分配协议书范本
  17. 衡量计算机的指标(纯小白视角,帮助你理解如何去以较为专业的角度衡量计算机)
  18. ubuntu提示根目录存储空间不足的解决办法
  19. php ThinkPHP文章上一篇、下一篇解决方案
  20. 1.9Hadoop插件

热门文章

  1. MorGain2020中文版
  2. Movavi PDF Editor 3中文版
  3. 【消息中间件】Spring Boot整合RabbitMQ
  4. 有关Visual Studio 2008 SP1和SQL Server 2008的一些说明
  5. docker 安装mysql
  6. YJX_rxjh_10_2.5.2
  7. html body div height: 100%;
  8. JavaScript笔记 基础知识总结2
  9. 分布式检索系统的简单设计
  10. C#二进制格式与文件相互转换