leetcode--N-Queens II

来源:互联网 发布:手游商业版源码 编辑:程序博客网 时间:2024/06/06 10:38

1.问题

Follow up for N-Queens problem.

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

2.分析

与上一道N-Queens类似。


3.实现

class Solution {public:    int totalNQueens(int n) {        int total = 0;        vector<int> postion(n,0);        solve(postion,n,0,total);        return total;    }private:    void solve(vector<int> postion,int n,int k,int &total) {        for(int i=0;i<n;++i) {            postion[k] = i;            if(!isVaild(postion,k)) continue;            if(k==n-1)                 total++;            else                 solve(postion,n,k+1,total);        }    }        bool isVaild(vector<int> postion,int k) {        for(int i=0;i<k;++i) {            if(postion[i]==postion[k]) return false;            if(postion[k]-postion[i]==k-i) return false;            if(postion[k]-postion[i]==-1*(k-i)) return false;        }        return true;    }};


0 0
原创粉丝点击