编程题: 将一个矩阵(二维数组)顺时针旋转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. 先沿右上到左下翻转,再上下翻转。

 

代码实现比较简单,此处就略过了。

posted on 2011-10-28 23:46  谢绝围观  阅读(2831)  评论(0编辑  收藏  举报

导航