MENU

LeetCode52. N皇后 II

July 14, 2018 • Read: 247 • LeetCode

image

class Solution {
    public int[] path = new int[100];//path[i]表示第i行的皇后所在第path[i]列
    public int ans = 0;
    public void dfs(int idx,int n) {
        int j;
        if(idx >= n) {
            ans++;
            return;
        }
        for(int i = 0;i < n;i++) {//枚举n列
            for(j = 0;j < idx;j++) {//和前idx行的皇后比较
                if(i == path[j] || Math.abs(i - path[j]) == Math.abs(idx - j))
                    break;
            }
            if(j == idx) {
                path[idx] = i;
                dfs(idx + 1,n);
            }
        }
    }
    public int totalNQueens(int n) {
        ans = 0;
        dfs(0,n);
        return ans;
    }
}
最后编辑于: August 12, 2018
Archives Tip
QR Code for this page
Tipping QR Code