首页 > 代码库 > [leetcode] N-Queens II

[leetcode] N-Queens II

Follow up for N-Queens problem.

Now, instead outputting board configurations, return the total number of distinct solutions.

https://oj.leetcode.com/problems/n-queens-ii/

思路:参考N-Queens,只统计个数即可。

 

public class Solution {	public int totalNQueens(int n) {		if (n <= 0)			return 0;		int[] perm = new int[n];		slove(perm, 0, n);		return count;	}	private int count = 0;	private void slove(int[] perm, int cur, int n) {		if (cur == n) {			count++;		} else {			int i;			for (i = 0; i < n; i++) {				int j;				boolean ok = true;				for (j = 0; j < cur; j++) {					if (perm[j] == i || perm[j] - j == i - cur							|| perm[j] + j == i + cur)						ok = false;				}				if (ok) {					perm[cur] = i;					slove(perm, cur + 1, n);				}			}		}	}	public static void main(String[] args) {		System.out.println(new Solution().totalNQueens(8));	}}