2017-04-24 28 views
1

我有一个3乘3难题。要知道它是否可以解决,我需要计算倒数的个数。如果甚至倒数的数量,那么它是可以解决的。 我发现了一个示例代码在线:8拼图可解决性测试用例错误

https://gist.github.com/caseyscarborough/6544636

在这里他说{1,0,3,7,2,5,8,4,6}是可解的。但我的计算说不然。我有(10,32,72,75,74,76,54,84,86)。所以这个例子的反演次数是9,因为它很奇怪,所以不能解决。

我用代码测试过的另一种情况是(3,0,7,6,8,2,1,4,5)。它给我(30,31,32,62,61,64,65,76,72,71,74,75,82,81,84,85,21),这是17次反演。所以它是不可解的,但代码说它是可以解决的。

我犯了什么错误吗?或者代码中是否有错误?

回答

1

您的方法稍微不正确。假设0是空白方块,你应该在倒数计数时忽略它。

做出这样的改变在你的两个例子中都不包括一个反转,所以两者都是错误的。