我有矩阵,并且想要逆时针旋转它。 例如:Java - 如何旋转矩阵小于90度
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
become:
2 3 4 8
1 7 11 12
5 6 10 16
9 13 14 15
这里的旋转是我到目前为止已经完成的方法。结果(如下所示)是矩阵旋转了90度;我希望能够以这样的方式旋转,即外环上的物件只能移动一个位置。
int[][] rotateArray(int[][] m) {
int e = m.length - 1;
int c = e/2;
int b = e % 2;
for (int r = c; r >= 0; r--) {
for (int d = c - r; d < c + r + b; d++) {
int t = m[c - r][d];
m[c - r][d] = m[d][e - c + r];
m[d][e - c + r] = m[e - c + r][e - d];
m[e - c + r][e - d] = m[e - d][c - r];
m[e - d][c - r] = t;
}
}
return m;
}
电流输出
4 8 12 16
3 7 11 15
2 6 10 14
1 5 9 13
请帮帮忙,谢谢:)
的可能的复制[阵列顺时针旋转](http://stackoverflow.com/questions/2799755/rotate-array-clockwise) – DimaSan
您的矩阵不是2x2,我看不出输出的明显错误。什么是实际问题? –
对不起,我认为这是不同的,想要90度旋转,但我想更喜欢左移1 – sptra