LeetCode每日一题 52. N皇后 II
题目链接
思路
- 暴搜
- 二进制
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相关推荐
- Leetcode每日一题-学生出勤记录 II(Student Attendance Record II)
可以用字符串表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤.迟到.到场).记录中只含下面三种字符: 'A':Absent,缺勤 'L':Late,迟到 'P':Present,到场 ...
- LeetCode每日一题 142. 环形链表 II
题目链接 思路 快慢指针 class Solution {public:ListNode *detectCycle(ListNode *head) {ListNode* l = head;ListNo ...
- LeetCode 52.N皇后II
[LetMeFly]52.N皇后II 力扣题目链接:https://leetcode.cn/problems/n-queens-ii/ n 皇后问题 研究的是如何将n个皇后放置在n×n的棋盘上,并且使 ...
- leetcode每日一题--前缀树;前缀哈希;深搜;面试题 08.04. 幂集;648. 单词替换面试题 01.09. 字符串轮转;剑指 Offer II 062. 实现前缀树
leetcode每日一题 ps:今天的每日一题没意思,简单的模拟,自己换一道 面试题 08.04. 幂集 幂集.编写一种方法,返回某集合的所有子集.集合中不包含重复的元素. 说明:解集不能包含重复的子 ...
- LeetCode—52. N皇后 II(困难)
52. N皇后 II(困难) 题目描述: n 皇后问题研究的是如何将 n 个皇后放置在 n × n 的棋盘上,并且使皇后彼此之间不能相互攻击.即令其中任意两个皇后都不同列.同行和在一条斜线上. 给你一 ...
- LeetCode 51. N 皇后、52. N 皇后 II
51. N 皇后 n皇后问题要求皇后放置后,同一行,同一列,同一斜线上不存在其他的皇后即可 采用回溯法解决该问题 同时应该设置一个函数判断当该位置放置皇后后,是否合法 因为是采用回溯法放置皇后,每行只 ...
- Java实现 LeetCode 52 N皇后 II
52. N皇后 II n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 上图为 8 皇后问题的一种解法. 给定一个整数 n,返回 n 皇后不同的解决方案 ...
- leetcode每日一题·买卖股票问题(Python)
leetcode每日一题·买卖股票问题(Python) 买卖股票的最佳时机(股票最大利润) 题目链接 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的 ...
- leetcode每日刷题计划-简单篇day8
leetcode每日刷题计划-简单篇day8 今天是纠结要不要新买手机的一天QAQ想了想还是算了吧,等自己赚钱买,加油 Num 70 爬楼梯 Climbing Stairs class Solutio ...
最新文章
- 竞赛中如何做特征工程
- Windows——蓝屏[失败的操作:HardwareProtect_x64.sys]解决方案
- 不想再被鄙视?那就看进来! 一文搞懂 Python 2 字符编码
- 这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧
- 请插入多卷集的最后一张磁盘_聊一聊插入排序和选择排序
- win10和linux双系统分区大小,win10与Linux双系统分区问题
- idea行号颜色修改
- mac bigsur 360极速浏览器闪退问题解决方法
- php多线程实现抓取,php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
- 三种方法用Verilog实现多人表决器
- ISO 22301 业务连续性管理(BCM) 认证培训及标准
- cmmi实践访谈测试ppt_CMMI3_实践篇.ppt
- DEAP2.1 使用方法(运筹学)
- 贾琏欲执事(JDBC连接数据库)
- php 图片 字母识别,PHP图片文字识别(OCR)
- jpeg-snoo-图片信息分析工具
- python 操作excel 的包 函数
- 爬取虎扑网站上NBA球员数据信息
- python-爬取中国评书网音频
- 计算机系统基础 第一章计算机系统概述
热门文章
- DAL,IDAL,BLL,Factory作用
- 仿照微信的效果,实现了一个支持多选、选原图和视频的图片选择器,适配了iOS6-10系统,3行代码即可集成....
- iOS开发学无止境 - 异步图片加载优化与常用开源库分析
- LeetCode Valid Sudoku
- JQuery的$(document).ready(function(){})与JS的window.onload 的各自优势!
- PHP LOG使用心得(2)
- oracle 数据库的非指令备份方法
- [译] APT分析报告:04.Kraken - 新型无文件APT攻击利用Windows错误报告服务逃避检测
- iOS之深入解析渲染的底层原理
- 2015年第六届蓝桥杯 - 省赛 - Java大学B组 - A. 三角形面积