题目链接

思路

  • 暴搜
  • 二进制
class Solution {public:vector<int> row, col;int totalNQueens(int n) {int ret= 0;row.resize(n, -1);col.resize(n, -1);ret += dfs(0, n);return ret;}int dfs(int x, int n) {if (x == n) return 1;int ret = 0;for (int i = 0; i < n; ++i) {if (col[i] != -1) continue;bool flag = true;for (int j = 0; j < n; ++j) {if (row[j] == -1) continue;if ((row[j]-i == j-x) || (row[j]-i == x-j)) {flag = false;break;}}if (!flag) continue;col[i] = x;row[x] = i;ret += dfs(x+1, n);col[i] = row[x] = -1;}return ret;}
};
class Solution {public:int totalNQueens(int n) {int c = 0, pie = 0, na = 0;int ret = dfs(0, n, c, pie, na);return ret;}int dfs(int r, int n, int c, int pie, int na) {if (r == n) return 1;int ret = 0;int bits = (~(pie|na|c)) & ((1<<n) - 1);while (bits > 0) {int p = bits & -bits;ret += dfs(r+1, n, c|p, (pie|p)<<1, (na|p)>>1);bits &= bits - 1;}return ret;}
};

LeetCode每日一题 52. N皇后 II相关推荐

  1. Leetcode每日一题-学生出勤记录 II(Student Attendance Record II)

    可以用字符串表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤.迟到.到场).记录中只含下面三种字符: 'A':Absent,缺勤 'L':Late,迟到 'P':Present,到场 ...

  2. LeetCode每日一题 142. 环形链表 II

    题目链接 思路 快慢指针 class Solution {public:ListNode *detectCycle(ListNode *head) {ListNode* l = head;ListNo ...

  3. LeetCode 52.N皇后II

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

  4. leetcode每日一题--前缀树;前缀哈希;深搜;面试题 08.04. 幂集;648. 单词替换面试题 01.09. 字符串轮转;剑指 Offer II 062. 实现前缀树

    leetcode每日一题 ps:今天的每日一题没意思,简单的模拟,自己换一道 面试题 08.04. 幂集 幂集.编写一种方法,返回某集合的所有子集.集合中不包含重复的元素. 说明:解集不能包含重复的子 ...

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

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

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

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

  7. Java实现 LeetCode 52 N皇后 II

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

  8. leetcode每日一题·买卖股票问题(Python)

    leetcode每日一题·买卖股票问题(Python) 买卖股票的最佳时机(股票最大利润) 题目链接 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的 ...

  9. leetcode每日刷题计划-简单篇day8

    leetcode每日刷题计划-简单篇day8 今天是纠结要不要新买手机的一天QAQ想了想还是算了吧,等自己赚钱买,加油 Num 70 爬楼梯 Climbing Stairs class Solutio ...

最新文章

  1. 竞赛中如何做特征工程
  2. Windows——蓝屏[失败的操作:HardwareProtect_x64.sys]解决方案
  3. 不想再被鄙视?那就看进来! 一文搞懂 Python 2 字符编码
  4. 这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧
  5. 请插入多卷集的最后一张磁盘_聊一聊插入排序和选择排序
  6. win10和linux双系统分区大小,win10与Linux双系统分区问题
  7. idea行号颜色修改
  8. mac bigsur 360极速浏览器闪退问题解决方法
  9. php多线程实现抓取,php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
  10. 三种方法用Verilog实现多人表决器
  11. ISO 22301 业务连续性管理(BCM) 认证培训及标准
  12. cmmi实践访谈测试ppt_CMMI3_实践篇.ppt
  13. DEAP2.1 使用方法(运筹学)
  14. 贾琏欲执事(JDBC连接数据库)
  15. php 图片 字母识别,PHP图片文字识别(OCR)
  16. jpeg-snoo-图片信息分析工具
  17. python 操作excel 的包 函数
  18. 爬取虎扑网站上NBA球员数据信息
  19. python-爬取中国评书网音频
  20. 计算机系统基础 第一章计算机系统概述

热门文章

  1. DAL,IDAL,BLL,Factory作用
  2. 仿照微信的效果,实现了一个支持多选、选原图和视频的图片选择器,适配了iOS6-10系统,3行代码即可集成....
  3. iOS开发学无止境 - 异步图片加载优化与常用开源库分析
  4. LeetCode Valid Sudoku
  5. JQuery的$(document).ready(function(){})与JS的window.onload 的各自优势!
  6. PHP LOG使用心得(2)
  7. oracle 数据库的非指令备份方法
  8. [译] APT分析报告:04.Kraken - 新型无文件APT攻击利用Windows错误报告服务逃避检测
  9. iOS之深入解析渲染的底层原理
  10. 2015年第六届蓝桥杯 - 省赛 - Java大学B组 - A. 三角形面积