题解 | #N皇后问题#

N皇后问题

https://www.nowcoder.com/practice/c76408782512486d91eea181107293b6


class Solution {
int a[10];
int count=0;
public:
    /**
     * 
     * @param n int整型 the n
     * @return int整型
     */
    int Nqueen(int n) {
        cin >> n;
        dfs(1,n);
        return count;
    }

    bool queen(int i,int j){
        if(i == 1)
            return true;
        int k = 1;
        while(k < i){
            if(j == a[k] || abs(k - i)==abs(a[k]-j)){
                return false;
            }
            k++;
        }
        return true;
    }

    void dfs(int i,int n){
        if(i == n+1){
            count++;
            return;
        }
        for(int j = 1; j <= n; j++){
            if(queen(i,j) == true){
                a[i] = j;
                dfs(i+1,n);
            }
        }
    }
};
全部评论

相关推荐

尊嘟假嘟点击就送:加v细说,问题很大
点赞 评论 收藏
分享
11-08 16:53
门头沟学院 C++
投票
滑模小马达:第三个如果是qfqc感觉还行,我签的qfkj搞电机的,违约金也很高,但公司感觉还可以,听说之前开过一个试用转正的应届生,仅供参考。
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务