dfs实现。
import java.util.Scanner;
public class nQueen {
static int res;
public static void main(String []args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); //n*n棋盘,n个皇后
int []arr = new int[n]; //下标代表行,值代表列
dfs(arr,n,0);
System.out.print(res);
}
private static void dfs(int []arr,int n,int row){
if(row == n){
res++;
return;
}
for(int col=0;col<n;col++){
boolean flag = true;
for(int i=0;i<row;i++){
if(arr[i] == col || col+row == arr[i]+i || col-row == arr[i]-i){
flag = false;
}
}
if(flag==true){
arr[row] = col; //选择
dfs(arr,n,row+1);
arr[row] = 0; //撤销选择
}
}
}
}
博客主要围绕DFS算法的实现展开,聚焦于信息技术领域中算法的具体实践,为相关技术人员提供了关于DFS实现的内容。
2504

被折叠的 条评论
为什么被折叠?



