受雷蒙德·陈(Raymond Chen)的 帖子启发,假设您有一个4x4二维数组,请编写一个将其旋转90 度的函数。雷蒙德(Raymond)链接到伪代码的解决方案,但我希望看到一些实际的东西。
[1][2][3][4] [5][6][7][8] [9][0][1][2] [3][4][5][6]
Becomes:
[3][9][5][1] [4][0][6][2] [5][1][7][3] [6][2][8][4]
更新:尼克的答案是最直接的,但是有没有办法比n ^ 2更好呢?如果矩阵是10000x10000,该怎么办?
这是在C#中
int[,] array = new int[4,4] { { 1,2,3,4 }, { 5,6,7,8 }, { 9,0,1,2 }, { 3,4,5,6 } }; int[,] rotated = RotateMatrix(array, 4); static int[,] RotateMatrix(int[,] matrix, int n) { int[,] ret = new int[n, n]; for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { ret[i, j] = matrix[n - j - 1, i]; } } return ret; }