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 * ...
随机推荐
- Lucene基础(二)--索引的操作
索引的操作 我们建立所有就是要达到快速检索的目的,对数据能够方面便的查找,和数据库类似,索引也有自己的相关增删改查的操作. 在索引的增删改查中,增删改属于写操作,主要是有IndexWrite提供的方法 ...
- 制作第一个UI图集
按钮分有两种形式,一种是普通按钮,也就是一张没有文字的按钮图片,在需要用时,就在上面写上不同的.当前所需要的文字.量一种按钮则是图片按钮,这种按钮的特点是整个按钮就是一张图片,它既是按钮也是图片. 在 ...
- Call Azure Queue get "The remote server returned an error: (400) Bad Request."
这几天开始研究Windows Azure, 在使用Azure Queue 的时候,CreateInfNotExists 总是抛出异常 "The remote server returned ...
- 给JavaScript初学者的24条最佳实践(转:http://www.cnblogs.com/yanhaijing/p/3465237.html)
作为“30 HTML和CSS最佳实践”的后续,本周,我们将回顾JavaScript的知识 !如果你看完了下面的内容,请务必让我们知道你掌握的小技巧! 1.使用 === 代替 == JavaScript ...
- ubuntu中文版切换为英文后字体变化问题解决
为了熟悉更多Linux 的英语词汇,希望把Ubuntu 的界面换成英文的.使用System->Administration->Language Suport( 系统-> 管理-> ...
- 基于协同过滤的个性化Web推荐
下面这是论文笔记,其实主要是摘抄,这片博士论文很有逻辑性,层层深入,所以笔者保留的比较多. 看到第二章,我发现其实这片文章对我来说更多是科普,科普吧…… 一.论文来源 Personalized Web ...
- 引擎渲染速度测试--我js代码写得少你不要骗我
上一张图,很多人都看过的 地址:http://aui.github.io/artTemplate/test/test-speed.html 这个地址是在看artTemplate的时候看到的,很早都看过 ...
- 从ng-repeat到NgFor
看这篇文章基本明白怎么渲染模板,但是我的工程会报错说#号非法,这篇的写法也不好用. angular2.0.0的语法集: Angular for TypeScript 语法快速指南 (基于2.0.0版本 ...
- 【无聊放个模板系列】HDU 3068 MANACHER
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #inc ...
- activity的测试工程activiti-explorer使用
1. activiti-explorer默认使用h2数据库,第一步要修改db.properties的配置,如果使用其他数据库的话,务必放入驱动包,oracle的ojdbc4不能用,会报错,要使用版本高 ...