1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

Update Backtracking-NQueens.md

This commit is contained in:
shuang.kou 2020-03-18 21:28:04 +08:00
parent a0eeb8c342
commit 5cd581440c

View File

@ -41,7 +41,7 @@
若 row 行的棋子和 i 行的棋子在同一对角线,等腰直角三角形两直角边相等,即 row - i == Math.abs(result[i] - column) 若 row 行的棋子和 i 行的棋子在同一对角线,等腰直角三角形两直角边相等,即 row - i == Math.abs(result[i] - column)
布尔类型变量 isValid 的作用是剪枝,减少不必要的递归。 布尔类型变量 isValid 的作用是剪枝,减少不必要的递归。
``` ```java
public List<List<String>> solveNQueens(int n) { public List<List<String>> solveNQueens(int n) {
// 下标代表行值代表列。如result[0] = 3 表示第1行的Q在第3列 // 下标代表行值代表列。如result[0] = 3 表示第1行的Q在第3列
int[] result = new int[n]; int[] result = new int[n];
@ -104,7 +104,7 @@ row - i + n 的最大值为 2n当row = ni = 0时故anti_diag的容
**解法二时间复杂度为O(n!),在校验相同列和相同对角线时,引入三个布尔类型数组进行判断。相比解法一,少了一层循环,用空间换时间。** **解法二时间复杂度为O(n!),在校验相同列和相同对角线时,引入三个布尔类型数组进行判断。相比解法一,少了一层循环,用空间换时间。**
``` ```java
List<List<String>> resultList = new LinkedList<>(); List<List<String>> resultList = new LinkedList<>();
public List<List<String>> solveNQueens(int n) { public List<List<String>> solveNQueens(int n) {