Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有O(N)时间复杂度的N-queen解释?_Java_Algorithm_Time Complexity_N Queens - Fatal编程技术网

Java 具有O(N)时间复杂度的N-queen解释?

Java 具有O(N)时间复杂度的N-queen解释?,java,algorithm,time-complexity,n-queens,Java,Algorithm,Time Complexity,N Queens,我已经在以下位置运行了该实现:它解决了时间复杂度为O(N)的N-queen问题。它的速度惊人,而且无需搜索就能找到一个解决方案。然而,我并不十分清楚背后的逻辑。 他们为什么把问题分成3个部分:奇数、偶数(但不是表格6k)、偶数(但不是表格6k+2)。 有谁能检查代码并为我详细解释一下(仅限逻辑)?他们将问题分开,因为两种结构都不涵盖所有情况。也许如果你试图证明它们在坏的情况下有效,你会发现某个数不是模n。这是构造约束组合对象时非常典型的情况。例如,存在6k+1和6k+3阶,但这两个残基mod 6

我已经在以下位置运行了该实现:它解决了时间复杂度为O(N)的N-queen问题。它的速度惊人,而且无需搜索就能找到一个解决方案。然而,我并不十分清楚背后的逻辑。 他们为什么把问题分成3个部分:奇数、偶数(但不是表格6k)、偶数(但不是表格6k+2)。
有谁能检查代码并为我详细解释一下(仅限逻辑)?

他们将问题分开,因为两种结构都不涵盖所有情况。也许如果你试图证明它们在坏的情况下有效,你会发现某个数不是模n。这是构造约束组合对象时非常典型的情况。例如,存在6k+1和6k+3阶,但这两个残基mod 6需要不同的构造。

您需要问一个特定的问题……它看起来像是一个循环,用已知的答案填充数组。作者可以直接在O(1)中填充答案