leetcode@ [51/52] N-Queens
https://leetcode.com/problems/n-queens/
class Solution {
public:
void dfs(vector<vector<string>> &ret, vector<vector<char>> map,int i, int j){
if(i==map.size()-){
vector<string> ans; ans.clear();
for(int ki=;ki<map.size();++ki){
string s="";
for(int kj=;kj<map[].size();++kj){
s+=map[ki][kj];
}
ans.push_back(s);
}
ret.push_back(ans);
return;
}
vector<vector<char>> tmp(map.size());
for(int i=;i<tmp.size();++i) tmp.resize(map.size());
tmp = map;
for(int k=;k<map[].size();k++){
if(map[i+][k]=='.') continue;
for(int col=;col<map[].size();++col){
if(map[i+][col]==' ') map[i+][col]='.';
}
for(int row=i+;row<map.size();++row){
if(map[row][k]==' ') map[row][k]='.';
}
for(int row=i+,col=k+;row<map.size() && col<map[].size();++row,++col){
if(map[row][col]==' ') map[row][col]='.';
}
for(int row=i+,col=k-;row<map.size() && col>=;++row,--col){
if(map[row][col]==' ') map[row][col]='.';
}
map[i+][k]='Q';
dfs(ret,map,i+,k);
map=tmp;
}
}
vector<vector<string>> solveNQueens(int n) {
vector<vector<string>> ret;
if(n==) return ret;
vector<vector<char>> map(n);
for(int i=;i<map.size();++i) map[i].resize(n);
for(int i=;i<map.size();++i){
for(int j=;j<map[i].size();++j) map[i][j]=' ';
}
vector<vector<char>> tmp(map.size());
for(int i=;i<tmp.size();++i) tmp.resize(map.size());
tmp = map;
for(int k=;k<map[].size();k++){
for(int col=;col<map[].size();++col) map[][col]='.';
for(int row=;row<map.size();++row) map[row][k]='.';
for(int row=,col=k+;row<map.size() && col<map[].size();++row,++col) map[row][col]='.';
for(int row=,col=k-;row<map.size() && col>=;++row,--col) map[row][col]='.';
map[][k]='Q';
dfs(ret,map,,k);
map=tmp;
}
return ret;
}
};
leetcode@ [51/52] N-Queens的更多相关文章
- LeetCode(52) N-Queens II
题目 Follow up for N-Queens problem. Now, instead outputting board configurations, return the total nu ...
- 报错:(未解决)NoReplicaOnlineException: No replica in ISR for partition __consumer_offsets-8 is alive. Live brokers are: [Set(50, 51, 52)], ISR brokers are: [68]
报错背景: CDH集成kafka插件之后,启动kafka时就报出此错误. 报错现象: -- ::, ERROR state.change.logger: [Controller epoch=] Ini ...
- leetcode 51. N-Queens 、52. N-Queens II
51. N-Queens 使用isValid判断当前的位置是否合法 每次遍历一行,使用queenCol记录之前行的存储位置,一方面是用于判断合法,另一方面可以根据存储结果输出最终的结果 class S ...
- leetcode 51. N皇后 及 52.N皇后 II
51. N皇后 问题描述 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 上图为 8 皇后问题的一种解法. 给定一个整数 n,返回所有不同的 n 皇后 ...
- [Leetcode][Python]52: N-Queens II
# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 52: N-Queens IIhttps://oj.leetcode.com/ ...
- 【一天一道LeetCode】#52. N-Queens II
一天一道LeetCode系列 (一)题目 Follow up for N-Queens problem. Now, instead outputting board configurations, r ...
- [LeetCode] 51. N-Queens N皇后问题
The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens ...
- LeetCode: 51. N-Queens(Medium)
1. 原题链接 https://leetcode.com/problems/n-queens/description/ 2. 题目要求 游戏规则:当两个皇后位于同一条线上时(同一列.同一行.同一45度 ...
- 【LEETCODE】52、数组分类,简单级别,题目:717,661,746,628,643,849
package y2019.Algorithm.array; /** * @ProjectName: cutter-point * @Package: y2019.Algorithm.array * ...
随机推荐
- 聊天工具实现winform端实现
最近在找能够实现客户端点对点聊天的技术,通过github我发现了一个项目,它能够支持webscoket通讯,服务端是由c#socket完成. 我要的是winform端的通信,所以在他的基础上,增加了桌 ...
- hdu 3336 Count the string KMP+DP优化
Count the string Problem Description It is well known that AekdyCoin is good at string problems as w ...
- 大话string
最近看完大话string之后深有感悟,虽然写c#不知不觉的已经写了四年了,但是很多原理也一直不太明白,最近看完这个才算略微明白了一些. string类型有2个重要的特性,一致性和驻留性. 一致性就是说 ...
- 常用数据字典---bai
--常用数据字典 -- system: normal; sysdba --查询所有的逻辑对象.所有. select count(1) from dba_objects; select * from d ...
- cocos2dx3.4 分割plist图片
如果想要修改一个plist文件新打包成plist,而此刻原来的小图都找不到了,那只能把plist分解了,代码如下: void UiManage::DecodePlist(string imgPath, ...
- C#.net winform 控件和皮肤大全
1. 东日IrisSkin IrisSkin 共有两个版本,一个是IrisSkin.dll 用于.Net Framework1.0/1.1 和IrisSkin2.dll 用于.Net Framewor ...
- js构造函数传参
1.直接传参并用this关键字初始化属性 function Person(name,age,learn){ this.name = name; this.age = age; this.learn = ...
- jquery 简单弹出层(转)
预定义html代码:没有 所有代码通过js生成和移除. 预定义css /* 基本弹出层样式 */ .my-popup-overlay { width:100%; height:auto; /* wid ...
- ping(1)
/* ping program for learning IP protocol author: jeff date: 2014/10/25 */ #include <stdio.h> # ...
- Portlet 通信过程详解
Portlet 通信过程详解 在 Portal 的开发过程中,Theme 与 portlet 之间的通信,以及 portlet 之间的通信是开发人员常常遇到的问题.通常 Portlet 之间需要能够互 ...