# 代码

```class Solution {
/**
* Calculate the total number of distinct N-Queen solutions.
* @param n: The number of queens.
* @return: The total number of distinct solutions.
*/
public static int sum;
public int totalNQueens(int n) {
sum = 0;
int[] usedColumns = new int[n];
placeQueen(usedColumns, 0);
return sum;
}
public void placeQueen(int[] usedColumns, int row) {
int n = usedColumns.length;

if (row == n) {
sum ++;
return;
}

for (int i = 0; i < n; i++) {
if (isValid(usedColumns, row, i)) {
usedColumns[row] = i;
placeQueen(usedColumns, row + 1);
}
}
}
public boolean isValid(int[] usedColumns, int row, int col) {
for (int i = 0; i < row; i++) {
if (usedColumns[i] == col) {
return false;
}
if ((row - i) == Math.abs(col-usedColumns[i])) {
return false;
}
}
return true;
}
};```

381 篇文章35 人订阅

0 条评论

## 相关文章

2975

### 聊聊storm的CheckpointSpout

storm-2.0.0/storm-client/src/jvm/org/apache/storm/topology/TopologyBuilder.java

2666

3415

1814

3446

6178

3716

### Akka（8）： 分布式运算：Remoting-远程查找式

Akka是一种消息驱动运算模式，它实现跨JVM程序运算的方式是通过能跨JVM的消息系统来调动分布在不同JVM上ActorSystem中的Actor进行运算，...

4369

2819