import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * 51. N皇后 */ public class NQueens { public List> solveNQueens(int n) { List> res = new ArrayList<>(); char[][] memo = new char[n][n]; for(char[] t: memo){ Arrays.fill(t, '.'); } dp(0,0, 0, memo, res); return res; } void dp(int row, int col, int n, char[][] memo, List> res){ if(row>memo.length){ return; }else if(n==memo.length){ ArrayList temp = new ArrayList<>(); for(char[] t: memo){ temp.add(new String(t)); } res.add(temp); return; } for(int i=0; i=0 && j>=0; i--,j--){ if(memo[i][j]=='Q'){ return false; } } for(int i=row+1,j=col+1; i=0 && j0; i++,j--){ if(memo[i][j]=='Q'){ return false; } } return true; } }