zoukankan      html  css  js  c++  java
  • LeetCode

    N-Queens II

    2014.2.13 20:01

    Follow up for N-Queens problem.

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

    Solution:

      This problem is a simplification from the N-Queens. This time we only have record the number of solutions.

      Time complexity is O(n!). Space complexity is O(n!) as well, which comes from parameters in recursive function calls.

    Accepted code:

     1 // 3CE, 1AC, why so hasty?
     2 class Solution {
     3 public:
     4     int totalNQueens(int n) {
     5         a = nullptr;
     6         if (n <= 0) {
     7             return 0;
     8         }
     9         
    10         res_count = 0;
    11         a = new int[n];
    12         solveNQueensRecursive(0, a, n);
    13         delete[] a;
    14         
    15         return res_count;
    16     }
    17 private:
    18     int *a;
    19     int res_count;
    20     
    21     void solveNQueensRecursive(int idx, int a[], const int &n) {
    22         if (idx == n) {
    23             // one solution is found
    24             ++res_count;
    25             return;
    26         }
    27         
    28         int i, j;
    29         // check if the current layout is valid.
    30         for (i = 0; i < n; ++i) {
    31             a[idx] = i;
    32             for (j = 0; j < idx; ++j) {
    33                 if (a[j] == a[idx] || myabs(idx - j) == myabs(a[idx] - a[j])) {
    34                     break;
    35                 }
    36             }
    37             if (j == idx) {
    38                 // valid layout.
    39                 solveNQueensRecursive(idx + 1, a, n);
    40             }
    41         }
    42     }
    43     
    44     int myabs(const int x) {
    45         return (x >= 0 ? x : -x);
    46     }
    47 };
  • 相关阅读:
    ORM的概念, ORM到底是什么
    EM算法
    贝叶斯方法的m-估计
    概率图模型之:贝叶斯网络
    决策树学习
    各种聚类算法的比较
    聚类算法:K均值
    Entity Framework + WCF 远程调用出错
    使用Entity Framework时,序列化出错
    WCF基础知识
  • 原文地址:https://www.cnblogs.com/zhuli19901106/p/3548641.html
Copyright © 2011-2022 走看看