N-Queens
2014-02-12 02:48
253 查看
class Solution { public: bool isValid (vector<string> &board, int r, int c) { for (int i=0; i<board.size(); i++) { if (i!=r && board[i][c]=='Q') return false; if (i!=c && board[r][i]=='Q') return false; } for (int i=0; i<board.size(); i++) { for (int j=0; j<board.size(); j++) { if (i!=r && j!=c) { if (abs(i-r)==abs(j-c) && board[i][j]=='Q') return false; } } } return true; } bool dfs(int r, int n, vector<vector<string> > &res, vector<string> &cur) { if (r==n) { res.push_back(cur); return true; } for (int c=0; c<n; c++) { cur[r][c]='Q'; if (isValid(cur, r, c)) { dfs (r+1, n, res, cur); } cur[r][c]='.'; } return false; } vector<vector<string> > solveNQueens(int n) { string p(n,'.'); vector<string> cur(n, p); vector<vector<string> > res; dfs(0,n,res,cur); return res; } };
II:
class Solution {
public:
bool isValid (vector<string> &board, int r, int c) {
for (int i=0; i<board.size(); i++) {
if (i!=r && board[i][c]=='Q') return false;
if (i!=c && board[r][i]=='Q') return false;
}
for (int i=0; i<board.size(); i++) {
for (int j=0; j<board.size(); j++) {
if (i!=r && j!=c) {
if (abs(i-r)==abs(j-c) && board[i][j]=='Q') return false;
}
}
}
return true;
}
bool dfs(int r, int n, int &res, vector<string> &cur) {
if (r==n) {
res++;
return true;
}
for (int c=0; c<n; c++) {
cur[r][c]='Q';
if (isValid(cur, r, c)) {
dfs (r+1, n, res, cur);
}
cur[r][c]='.';
}
return false;
}
int totalNQueens(int n) {
int res=0;
string p(n,'.');
vector<string> cur(n, p);
dfs(0,n,res,cur);
return res;
}
};
相关文章推荐
- URAL 1034 Queens in Peaceful Positions
- William Shakespeare——7、Queens,Kings,and Princes
- [leetcode]N-Queens
- 【leetcode】N-Queens
- N-Queens
- LeetCode - N-Queens
- 【LeetCode】N-Queens && N-Queens II
- N-Queens
- LeetCode 51. N-Queens
- LeetCode OJ-- N-Queens **
- LeetCode Solutions : N-Queens
- leetcode--N-Queens
- leetcode[50] N-Queens
- sicily1172 Queens, Knights and Pawns
- N-Queens
- LeetCode --- 51. N-Queens
- 3.30-N-Queens
- sgu224:Little Queens(搜索)
- leetcode N-Queens I && N-Queens II
- [leetcode-51]N-Queens(java)