好吧,我得到了这个功课,我必须找到最小数量的互换,将一些矩阵A转换为给定的其他矩阵B,约束非常有限("矩阵和矩阵上不能超过10个元素)也将是N = M"),这意味着它将始终是1x1矩阵和2x2矩阵(这是微不足道的),问题在于3x3矩阵。
我已经尝试通过寻找矩阵上两个元素之间的曼哈顿距离来回溯元素,这两个元素是分开的,乘以2和减去-1,例如
交换规则是:您可以交换相邻的元素,当它们共享同一行或同一列时我们定义相邻。
1 3 2
6 5 4
7 8 9
目标:
1 2 3
4 5 6
7 8 9
{1,3}
之间的曼哈顿距离是1,所以2*1 - 1 = 1
需要1次交换。
对于{6,4}
是2,所以2*2 - 1 = 3
需要3次互换,最后的答案是需要4个互换。
但是,我的程序被自动修正器拒绝了,关于如何解决这个问题的任何想法?