lintcode-34-N皇后问题 II
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相关推荐
- LintCode 434. 岛屿的个数II(并查集)
文章目录 1. 题目 2. 解题 1. 题目 给定 n, m, 分别代表一个二维矩阵的行数和列数, 并给定一个大小为 k 的二元数组A. 初始二维矩阵全0. 二元数组A内的k个元素代表k次操作, 设第 ...
- LintCode 1652. 区间异或 II
1. 题目 给定数组 A(下标从0到n-1,n为数组长度),和一个查询列表. 每一项查询包括两个整数 i 和 k. 对于每次查询,计算Ai, A(i + 1), ..., A(i+k-1)的异或值.结 ...
- LintCode解题目录
看见 LintCode 的代码能力测试CAT(Coding Ability Test)挺好,有倒计时,挺有面试紧迫感.做个记录. 另有本人 LeetCode解题目录.<程序员面试金典>解题 ...
- 主元素、主元素II、主元素III
写在前面 这类题目之前还真没接触过,没什么好的思路.不过看要求又是一道考虑时间复杂度的问题,需要掂量(考虑)一下自己的算法有没有达到要求.根据自己目前的能力写出来的算法还真没做到O(n)的时间复杂度, ...
- 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 ...
- 数据结构与算法题目及C++解答
前言 题目主要按照类型进行整理,包括leetcode,nowcoder等网站,对于可以使用多种方法的题目,不重复列举.推荐书籍<数据结构与算法分析--C++语言描述>第四版. 本文中所有源 ...
- 【目标检测_概述】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 ...
- 剑指offer做题记录
1. 剑指 Offer 03. 数组中重复的数字 力扣 class Solution { public:int findRepeatNumber(vector<int>& nu ...
- 【航线运输驾驶员理论考试】操作程序
文章目录 1.Which altitude is appropriate for the floor of Class A airspace?(A类空域的下限高度为) 2.Which altitude ...
最新文章
- android手机上的ancs,Android BLE开发之操作IOS ANCS
- nethogs 查看 Linux 进程的网络使用
- 五. H.264的码流封装格式
- [转]如何解决:Android中 Error generating final archive: Debug Certificate expired on 10/09/18 16:30 的错误...
- java 扩展数据类型_java数据类型及其拓展
- LeetCode --- Validate Binary Search Tree
- Akka并发编程——第三节:Actor模型(二)
- Go语言字符串和正则表达式
- ps3无线无法与服务器通信,psp上网出现无法与服务器通信(8001006F)
- ajax html页面传值乱码,jQuery Ajax传值到Servlet出现乱码问题的解决方法
- TypeSrcript如何引入第三方库 如果加d.ts以及async await如何使用 demo,只有代码,文字后续补充...
- 了解Java密码扩展的基础
- CHIL-ORACLE-创建视图
- python导入表格数据混乱_Python按行打乱Excel表格数据
- shell 获取当前时间
- 五人合伙最佳股份分配_五人合伙股份分配协议书范本
- 衡量计算机的指标(纯小白视角,帮助你理解如何去以较为专业的角度衡量计算机)
- ubuntu提示根目录存储空间不足的解决办法
- php ThinkPHP文章上一篇、下一篇解决方案
- 1.9Hadoop插件