题目和上一题一样,就是要求输出有多少种结果。最直接的就是,只要在上一题的代码return ans.size();就可以了。果然也是AC了。

然后我翻看了几种别人写的,暂时还没有找到复杂度可以比上一题降低多少的。

可以加一个全局变量。以前都没有想到给solution类加全局变量。满足条件的时候全局变量加一。随后返回全局变量就好了。

class Solution {
int ansT = ;
public:
int totalNQueens(int n) { vector<vector<string> > ans;
//ans.clear();
int perm[n];
//memset(perm, 0, sizeof(perm));
solve50(perm, , n, ans);
return ansT;
} void solve50(int perm[], int row, int n, vector<vector<string> > &ans)
{
if (row == n) // 因为row从0开始,说明已经有0到n-1总共n个符合了
{
ansT++;
return;
}
else
{
for (int col = ; col < n; ++col)//对与第row行的每一个列,进行判断是否符合
{
bool flag = true;
for(int i = ; i < row; ++i)//对于第row行的每一个列要与之前的每行锁存的王后判断是否冲突
{
if (col == perm[i] || col - perm[i] == row - i || col - perm[i] == i - row)
{// 当前列等于之前的列,或者当前的点和之前的点的斜率为正负1时,为false,否则true进行判断下一行
flag = false;
}
}
if (flag)//没有冲突,记录当前列数,进入下一行的递归选择
{
perm[row] = col;
solve50(perm, row + , n, ans);
}
}
}
}
};

有空的时候看看这里介绍的据说比较高效一些的方法。

leetcode N-QueensII的更多相关文章

  1. 我为什么要写LeetCode的博客?

    # 增强学习成果 有一个研究成果,在学习中传授他人知识和讨论是最高效的做法,而看书则是最低效的做法(具体研究成果没找到地址).我写LeetCode博客主要目的是增强学习成果.当然,我也想出名,然而不知 ...

  2. LeetCode All in One 题目讲解汇总(持续更新中...)

    终于将LeetCode的免费题刷完了,真是漫长的第一遍啊,估计很多题都忘的差不多了,这次开个题目汇总贴,并附上每道题目的解题连接,方便之后查阅吧~ 477 Total Hamming Distance ...

  3. [LeetCode] Longest Substring with At Least K Repeating Characters 至少有K个重复字符的最长子字符串

    Find the length of the longest substring T of a given string (consists of lowercase letters only) su ...

  4. Leetcode 笔记 113 - Path Sum II

    题目链接:Path Sum II | LeetCode OJ Given a binary tree and a sum, find all root-to-leaf paths where each ...

  5. Leetcode 笔记 112 - Path Sum

    题目链接:Path Sum | LeetCode OJ Given a binary tree and a sum, determine if the tree has a root-to-leaf ...

  6. Leetcode 笔记 110 - Balanced Binary Tree

    题目链接:Balanced Binary Tree | LeetCode OJ Given a binary tree, determine if it is height-balanced. For ...

  7. Leetcode 笔记 100 - Same Tree

    题目链接:Same Tree | LeetCode OJ Given two binary trees, write a function to check if they are equal or ...

  8. Leetcode 笔记 99 - Recover Binary Search Tree

    题目链接:Recover Binary Search Tree | LeetCode OJ Two elements of a binary search tree (BST) are swapped ...

  9. Leetcode 笔记 98 - Validate Binary Search Tree

    题目链接:Validate Binary Search Tree | LeetCode OJ Given a binary tree, determine if it is a valid binar ...

  10. Leetcode 笔记 101 - Symmetric Tree

    题目链接:Symmetric Tree | LeetCode OJ Given a binary tree, check whether it is a mirror of itself (ie, s ...

随机推荐

  1. socket套接字TCP API

    socket套接字TCP API socket概念 socket又称"套接字",是计算机网络中进程间通信数据通道的一个端点.或称之为句柄.IP地址+port号就能够唯一确定一个so ...

  2. 【leetcode】Clone Graph(python)

    类似于二叉树的三种遍历,我们能够基于遍历的模板做非常多额外的事情,图的两种遍历,深度和广度模板相同也能够做非常多额外的事情,这里举例利用深度优先遍历的模板来进行复制,深度优先中,我们先訪问第一个结点, ...

  3. Windows平台Oracle使用USE_SHARED_SOCKET角色

    前两天在一个朋友QQ集团提出了一个问题.背景例如,下面的: 继续问后,有例如以下回复: 1.对方server连接无问题. 2.从client能够telnetserver的1521port. 3.tns ...

  4. PHP接口和抽象类的区别

    原文引自: http://blog.csdn.net/sunlylorn/article/details/6124319 一. 抽象类abstract class 1 .抽象类是指在 class 前加 ...

  5. hdu More is better

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1856 题意:王老师要找一些男生帮助他完成一项工程.要求最后挑选出的男生之间都是朋友关系,可以说直接的, ...

  6. BST(Binary Search Tree)

    原文链接:http://blog.csdn.net/jarily/article/details/8679280 /****************************************** ...

  7. python3使用smtplib发电子邮件

    smtplib模块smtp简单邮件传输协议client实现.对于多功能性,有时,当你要发送带附件的邮件或图片,使用email.mime加载内容. 码,如以下: import smtplib impor ...

  8. [LeetCode] 033. Search in Rotated Sorted Array (Hard) (C++)

    指数:[LeetCode] Leetcode 解决问题的指数 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 033. ...

  9. NEU 1440 The minimum square sum (平方剩余和欧拉准则)

    若p=2或p=4*k+1 则p能够表成两平方数的和的形式 (欧拉和费马已证明,而且有求的方法) 所以答案是p 若p=4*k+3 设a^2=n(mod p) (n!=0)  能够证明不存在b,b^2=p ...

  10. Linux常用命令3--如何设置IP地址?如何更改系统时间?

    Linux常用命令 系统状态监控 [1]ps:用于显示当前系统中运行的进程. 语法:ps [-option]:常用的参数有:-a;-u;-x;-e;-f. -a:显示所有进程: -u:显示所有用户: ...