51. N-Queens
经典的N皇后问题,典型的回溯问题,这里我就不解释什么思路了,我相信大家对于N皇后问题还是非常熟悉的,直接上代码。
class Solution {
public:
vector<vector<string>> solveNQueens(int n) {
vector<vector<string>> res;
vector<string> temp(n, string(n, '.'));
solveNQueens(res, temp, 0, n);
return res;
}
private:
void solveNQueens(vector<vector<string>>& res, vector<string>& temp, int start, int& end)
{
if (start == end)
{
res.push_back(temp);
}
else
{
for (int i = 0; i < end; i++)
{
if (IsValied(temp, start, i, end))
{
temp[start][i] = 'Q';
solveNQueens(res, temp, start + 1, end);
temp[start][i] = '.';
}
}
}
}
同理52题只需要稍加修改即可