编程题: 将一个矩阵(二维数组)顺时针旋转90度
在一个m*n的矩阵任取一个元素(i, j),发现旋转后对应的元素下标变成:(j, m-i)。
进一步研究一下矩阵的各种翻转可知:
沿左上到右下的对角线翻转:(i, j)与(j, i)对换;
沿右上到左下的对角线翻转:(i, j)与(n-j, m-i)对换;
上下翻转:(i, j)与(m-i, j)对换;
左右翻转:(i, j)与(i, n-j)对换;
因此要得到(j, m-i)可以有两种办法:
1. 先上下翻转,再沿左上到右下翻转。
2. 先沿右上到左下翻转,再上下翻转。
代码实现比较简单,此处就略过了。