mirror of
https://github.com/krahets/hello-algo.git
synced 2026-04-28 20:40:35 +08:00
fix(csharp): Modify method name to PascalCase, simplify new expression (#840)
* Modify method name to PascalCase(array and linked list) * Modify method name to PascalCase(backtracking) * Modify method name to PascalCase(computational complexity) * Modify method name to PascalCase(divide and conquer) * Modify method name to PascalCase(dynamic programming) * Modify method name to PascalCase(graph) * Modify method name to PascalCase(greedy) * Modify method name to PascalCase(hashing) * Modify method name to PascalCase(heap) * Modify method name to PascalCase(searching) * Modify method name to PascalCase(sorting) * Modify method name to PascalCase(stack and queue) * Modify method name to PascalCase(tree) * local check
This commit is contained in:
@@ -8,11 +8,11 @@ namespace hello_algo.chapter_backtracking;
|
||||
|
||||
public class n_queens {
|
||||
/* 回溯算法:N 皇后 */
|
||||
static void backtrack(int row, int n, List<List<string>> state, List<List<List<string>>> res,
|
||||
static void Backtrack(int row, int n, List<List<string>> state, List<List<List<string>>> res,
|
||||
bool[] cols, bool[] diags1, bool[] diags2) {
|
||||
// 当放置完所有行时,记录解
|
||||
if (row == n) {
|
||||
List<List<string>> copyState = new List<List<string>>();
|
||||
List<List<string>> copyState = new();
|
||||
foreach (List<string> sRow in state) {
|
||||
copyState.Add(new List<string>(sRow));
|
||||
}
|
||||
@@ -30,7 +30,7 @@ public class n_queens {
|
||||
state[row][col] = "Q";
|
||||
cols[col] = diags1[diag1] = diags2[diag2] = true;
|
||||
// 放置下一行
|
||||
backtrack(row + 1, n, state, res, cols, diags1, diags2);
|
||||
Backtrack(row + 1, n, state, res, cols, diags1, diags2);
|
||||
// 回退:将该格子恢复为空位
|
||||
state[row][col] = "#";
|
||||
cols[col] = diags1[diag1] = diags2[diag2] = false;
|
||||
@@ -39,11 +39,11 @@ public class n_queens {
|
||||
}
|
||||
|
||||
/* 求解 N 皇后 */
|
||||
static List<List<List<string>>> nQueens(int n) {
|
||||
static List<List<List<string>>> NQueens(int n) {
|
||||
// 初始化 n*n 大小的棋盘,其中 'Q' 代表皇后,'#' 代表空位
|
||||
List<List<string>> state = new List<List<string>>();
|
||||
List<List<string>> state = new();
|
||||
for (int i = 0; i < n; i++) {
|
||||
List<string> row = new List<string>();
|
||||
List<string> row = new();
|
||||
for (int j = 0; j < n; j++) {
|
||||
row.Add("#");
|
||||
}
|
||||
@@ -52,9 +52,9 @@ public class n_queens {
|
||||
bool[] cols = new bool[n]; // 记录列是否有皇后
|
||||
bool[] diags1 = new bool[2 * n - 1]; // 记录主对角线是否有皇后
|
||||
bool[] diags2 = new bool[2 * n - 1]; // 记录副对角线是否有皇后
|
||||
List<List<List<string>>> res = new List<List<List<string>>>();
|
||||
List<List<List<string>>> res = new();
|
||||
|
||||
backtrack(0, n, state, res, cols, diags1, diags2);
|
||||
Backtrack(0, n, state, res, cols, diags1, diags2);
|
||||
|
||||
return res;
|
||||
}
|
||||
@@ -62,7 +62,7 @@ public class n_queens {
|
||||
[Test]
|
||||
public void Test() {
|
||||
int n = 4;
|
||||
List<List<List<string>>> res = nQueens(n);
|
||||
List<List<List<string>>> res = NQueens(n);
|
||||
|
||||
Console.WriteLine("输入棋盘长宽为 " + n);
|
||||
Console.WriteLine("皇后放置方案共有 " + res.Count + " 种");
|
||||
|
||||
Reference in New Issue
Block a user