博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode - N-Queens II
阅读量:5161 次
发布时间:2019-06-13

本文共 1612 字,大约阅读时间需要 5 分钟。

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 . 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 found24             ++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 };

 

转载于:https://www.cnblogs.com/zhuli19901106/p/3548641.html

你可能感兴趣的文章
利用SignalR来同步更新Winfrom
查看>>
反射机制
查看>>
CocoaPod
查看>>
BZOJ 1251: 序列终结者 [splay]
查看>>
5G边缘网络虚拟化的利器:vCPE和SD-WAN
查看>>
MATLAB基础入门笔记
查看>>
【UVA】434-Matty&#39;s Blocks
查看>>
Android开发技术周报 Issue#80
查看>>
hadoop2.2.0+hive-0.10.0完全分布式安装方法
查看>>
django知识点总结
查看>>
C++ STL stack、queue和vector的使用
查看>>
使用Reporting Services时遇到的小问题
查看>>
约瑟夫问题
查看>>
Arduino 报错总结
查看>>
树莓派Android Things物联网开发:树莓派GPIO引脚图
查看>>
矩阵快速幂---BestCoder Round#8 1002
查看>>
如何将应用完美迁移至Android P版本
查看>>
【转】清空mysql一个库中的所有表的数据
查看>>
基于wxPython的python代码统计工具
查看>>
淘宝JAVA中间件Diamond详解(一)---简介&快速使用
查看>>