我有矩陣,並且想要逆時針旋轉它。 例如: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