zoukankan      html  css  js  c++  java
  • LeetCode "N-Queens II"

    Classic recursionpruning problem. We can use O(n) space: A[i] = j means [i,j] is occupied.

    class Solution {
    public:
        int ret;
        bool isValid(int *A, int r)
        {
            for (int i = 0; i < r; i++)
                if ((abs(A[i] - A[r]) == abs(i - r) ||    A[i] == A[r]))
                    return false;
            return true;
        }
    
        void go(int *A, int r, int n)
        {
            if (r == n)
            {
                ret++;
                return;
            }
            for (int i = 0; i < n; i++)
            {
                A[r] = i;
                if (isValid(A, r))    go(A, r + 1, n);
            }
        }
        int totalNQueens(int n) {
            ret = 0;
            int *A = new int[n];
    
            go(A, 0, n);
    
            delete[] A;
            return ret;
        }
    };
    View Code
  • 相关阅读:
    监听
    用户管理
    oracle网络
    实例 参数
    存储管理
    oracle 体系
    实例
    修改
    集合操作
    17.08.18
  • 原文地址:https://www.cnblogs.com/tonix/p/3857663.html
Copyright © 2011-2022 走看看