网站建设参考文献外文,做一件代发哪个网站好,东莞外贸人才网,crm系统成功案例分享ppt52. N皇后 II#xff08;困难#xff09;
题目描述#xff1a; n 皇后问题研究的是如何将 n 个皇后放置在 n n 的棋盘上#xff0c;并且使皇后彼此之间不能相互攻击。即令其中任意两个皇后都不同列、同行和在一条斜线上。
给你一个整数 n #xff0c;返回 n 皇后问题不…52. N皇后 II困难
题目描述 n 皇后问题研究的是如何将 n 个皇后放置在 n × n 的棋盘上并且使皇后彼此之间不能相互攻击。即令其中任意两个皇后都不同列、同行和在一条斜线上。
给你一个整数 n 返回 n 皇后问题不同的解决方案的数量。 考察重点具体参考51题。该题返回最终结果的size即可。
int res 0;
public boolean isLegal(char map[][], int x, int y){for(int i 0;i map.length;i ){if(map[i][y] ! .)return false;}for(int i 1;i map.length;i ){if(xi map.length yi map.length map[x i][y i] ! .)return false;if(x-i 0 y-i 0 map[x - i][y - i] ! .)return false;if(xi map.length y-i 0 map[x i][y - i] ! .)return false;if(x-i 0 yi map.length map[x - i][y i] ! .)return false;}return true;
}
public int dfs(char[][] map, int x){if(!(x map.length)){res 1;return 0;}for(int y 0;y map.length;y ){if(isLegal(map, x, y)) {map[x][y] Q;dfs(map, x 1);map[x][y] .;}}return 0;
}
public int totalNQueens(int n) {char[][] map new char[n][n];for(int i 0;i n;i )for(int j 0;j n;j )map[i][j] .;dfs(map, 0);return res;
}