N皇后问题
N皇后问题是指在N*N的棋盘上要摆N个皇后,要求任何两个皇后不同行、不同列,也不在同一条斜线上。给定一个整数n,返回n皇后的摆法有多少种。
123456789101112131415161718192021222324252627282930313233343536373839int num(int n){ if(n < 1) return 0; // record[i]=j 表示i行的皇后放在了第j列(这样可以省去了用二维数组来表示) vector<int> record(n); return process(0, record, n);}// 目前来到了第i行(总共有n行)// record[0...i-1]表示之前的行放了皇后(潜台词:前i-1行任何两个皇后都不共行、列、斜线)// 返回值代表百万所有的皇后,合法的摆法共有多少种int process(int i, vector<int> record, int n){ if(i == n) return 1; // 来到终止 ...
