zoukankan      html  css  js  c++  java
  • leetcode

    Follow up for N-Queens problem.

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

    class Solution {
    private:
        int res;
    public:
        int totalNQueens(int n) {
            std::vector<int> state(n, -1);
            res = 0;
            dfs(state, 0);
            return res;
        }
        void dfs(std::vector<int> &state, int row)
        {
            int n = state.size();
            if(row == n)
            {
                res++;
                return;
            }
            for(int col = 0; col < n; col++)
                if(isValid(state, row, col))
                {
                    state[row] = col;
                    dfs(state, row+1);
                    state[row] = -1;;
                }
        }
        bool isValid(std::vector<int> &state, int row, int col)
        {
            for(int i = 0; i < row; i++)
                if(state[i] == col || abs(row - i) == abs(col - state[i]))
                    return false;
            return true;
        }
     
    };


  • 相关阅读:
    freak out用法
    kinda用法
    比较级与最高级
    issue用法
    invite用法
    yet用法
    follow用法
    get用法
    turn up&turn off&turn on用法
    关于document.lastModified属性
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/6851811.html
Copyright © 2011-2022 走看看