博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 51. N-Queens
阅读量:5275 次
发布时间:2019-06-14

本文共 1642 字,大约阅读时间需要 5 分钟。

The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens attack each other.

Given an integer n, return all distinct solutions to the n-queens puzzle.

Each solution contains a distinct board configuration of the n-queens' placement, where 'Q' and '.' both indicate a queen and an empty space respectively.

For example,

There exist two distinct solutions to the 4-queens puzzle:

[ [".Q..",  // Solution 1  "...Q",  "Q...",  "..Q."], ["..Q.",  // Solution 2  "Q...",  "...Q",  ".Q.."]] [solution]
1 vector
> result; 2 vector
> solveNQueens(int n) 3 { 4 if (n <= 0) 5 return result; 6 vector
mark(n, 0); 7 8 NQueen(mark, n, 0); 9 return result;10 }11 12 void NQueen(vector
&mark, int n, int row)13 {14 if (row == n) // get a solution15 {16 vector
strRow;17 for (int i = 0; i < n; i++)18 {19 string str;20 for (int j = 0; j < n; j++)21 if (mark[i] == j)22 str.push_back('Q');23 else24 str.push_back('.');25 strRow.push_back(str);26 }27 result.push_back(strRow);28 return;29 }30 31 for (int i = 0; i < n; i++)32 {33 mark[row] = i;34 if (check(mark, row))35 NQueen(mark, n, row + 1);36 }37 }38 39 bool check(vector
mark, int row)40 {41 for (int i = 0; i < row; i++)42 {43 if (mark[i] == mark[row] || abs(mark[i] - mark[row]) == (row - i))44 return false;45 }46 return true;47 }

 

转载于:https://www.cnblogs.com/ym65536/p/4321663.html

你可能感兴趣的文章
php实现倒计时效果
查看>>
如何开发一个npm包并发布
查看>>
进击的 JavaScript(六) 之 this
查看>>
二进制&八进制&十六进制之间的快速转换------ 心算&笔算方法总结
查看>>
The operation couldn’t be completed. (LaunchServicesError error 0.)
查看>>
iOS开发tips总结
查看>>
php每天一题:strlen()与mb_strlen()的作用分别是什么
查看>>
学习MySQL我们应该知道哪些东西?
查看>>
智力面试题汇总,有意思!
查看>>
NYOJ-523 亡命逃窜(三维立体的BFS)
查看>>
HDOJ-3785 寻找大富翁(优先队列)
查看>>
编程中定义的方法报异常问题
查看>>
使用STM32F103ZET霸道主板实现SD卡的读写(非文件系统)
查看>>
工作中收集JSCRIPT代码之(下拉框篇)
查看>>
《转载》POI导出excel日期格式
查看>>
code异常处理
查看>>
git - 搭建最简单的git server
查看>>
.net中从GridView中导出数据到excel(详细)
查看>>
[LeetCode]Single Number II
查看>>
poj3216 Prime Path(BFS)
查看>>