LeetCode:51. N 皇后

class Solution {

public:

vector<vector<string>> solveNQueens(int n) {

vector<string> board(n, string(n, '.'));

backtrack(board,0);

return res;

}

private:

vector<vector<string>>res;

void backtrack(vector<string>& board,int row){

if(row==board.size()){

res.push_back(board);

return ;

}

int n=board[row].size();

for(int con=0;con<n;con++){

if(!isvalid(board,row,con)){

continue;

}

board[row][con]='Q';

backtrack(board,row+1);

board[row][con]='.';

}

}

bool isvalid(const vector<string>& board,int row,int con){

int n=board.size();

//检查列之间有没有冲突

for(int i=0;i<row;i++){

if(board[i][con]=='Q')

return false;

}

//检查左对角线是否有冲突

for(int i=row-1,j=con-1;i>=0&&j>=0;i--,j--){

if(board[i][j]=='Q')

return false;

}

//检查右对角线是否有冲突

for(int i=row-1,j=con+1;i>=0&&j<n;i--,j++){

if(board[i][j]=='Q')

return false;

}

return true;

}

};

相关推荐
范纹杉想快点毕业3 分钟前
状态机设计与嵌入式系统开发完整指南从面向过程到面向对象,从理论到实践的全面解析
linux·服务器·数据库·c++·算法·mongodb·mfc
fish-man6 分钟前
测试加粗效果
算法
坚定学代码16 分钟前
认识 ‘using namespace‘
c++
xuxie9918 分钟前
day 23 树
数据结构
晓131319 分钟前
第二章 【C语言篇:入门】 C 语言基础入门
c语言·算法
jiang_changsheng20 分钟前
环境管理工具全景图与深度对比
java·c语言·开发语言·c++·python·r语言
LYOBOYI12326 分钟前
qml的对象树机制
c++·qt
yong999030 分钟前
MATLAB面波频散曲线反演程序
开发语言·算法·matlab
LeoZY_34 分钟前
开源项目精选:Dear ImGui —— 轻量高效的 C++ 即时模式 GUI 框架
开发语言·c++·ui·开源·开源软件
JicasdC123asd44 分钟前
【工业检测】基于YOLO13-C3k2-EIEM的铸造缺陷检测与分类系统_1
人工智能·算法·分类