Java 具有O(N)时间复杂度的N-queen解释?
我已经在以下位置运行了该实现:它解决了时间复杂度为O(N)的N-queen问题。它的速度惊人,而且无需搜索就能找到一个解决方案。然而,我并不十分清楚背后的逻辑。 他们为什么把问题分成3个部分:奇数、偶数(但不是表格6k)、偶数(但不是表格6k+2)。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
有谁能检查代码并为我详细解释一下(仅限逻辑)?他们将问题分开,因为两种结构都不涵盖所有情况。也许如果你试图证明它们在坏的情况下有效,你会发现某个数不是模n。这是构造约束组合对象时非常典型的情况。例如,存在6k+1和6k+3阶,但这两个残基mod 6需要不同的构造。您需要问一个特定的问题……它看起来像是一个循环,用已知的答案填充数组。作者可以直接在O(1)中填充答案