回溯法
vector> solveNQueens(int n) { // Note: The Solution object is instantiated only once and is reused by each test case. vector > res; vector queens; vector cols(n,false); vector diag(2*n,false); vector ardiag(2*n,false); dfs(0,n,queens,cols,diag,ardiag,res); return res; } void dfs(int row,int n,vector & queens,vector & cols,vector & diag,vector & ardiag,vector >& res) { if(row==n) { generate(queens,res); return; } for(int i=0;i