天天看点

将M*N的矩阵旋转90度

  请用最少的额外空间将一个M*N的矩阵旋转90度,写出算法描述和类c语言程序。(这是一道阿里巴巴的笔试编程题目)

#include <iostream>
using namespace std;
const int M = 5;
const int N = 3;

int main()
{
  int a[M][N] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
  int *p = a[0];

  for(int i = 0;i < M;i++) // M = 5 
  {
    for(int j = N-1;j >= 0;j--) // N = 3
    {
        cout << *(p + i + j*M) << ","; // M = 5;
    }
    cout << endl;
  }  
  return 0;
}
           

运行结果:

将M*N的矩阵旋转90度