zoukankan      html  css  js  c++  java
  • 52. N-Queens II

    description:

    八皇后
    Note:

    Example:

    Input: 4
    Output: 2
    Explanation: There are two distinct solutions to the 4-queens puzzle as shown below.
    [
     [".Q..",  // Solution 1
      "...Q",
      "Q...",
      "..Q."],
    
     ["..Q.",  // Solution 2
      "Q...",
      "...Q",
      ".Q.."]
    ]
    

    answer:

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

    relative point get√:

    hint :

    和上面那个题一样

  • 相关阅读:
    hdu 3367 Pseudoforest
    hdu 2489 Minimal Ratio Tree
    hdu 4009 Transfer water
    poj 3164 Command Network
    hdu 3926 Hand in Hand
    hdu 3938 Portal
    5-26日(面经总结)
    5-25日
    5-21日|5-22日
    5-13日记录|5-14日
  • 原文地址:https://www.cnblogs.com/forPrometheus-jun/p/11246876.html
Copyright © 2011-2022 走看看