阿里巴巴一道矩形旋轉90度的筆試題目

才智咖 人氣:1.87W

阿里巴巴一道矩形旋轉90度的筆試題目

    最近網上看了阿里巴巴的筆試題目 有一個是:

1請用最少的額外空間將一個M*N的矩陣旋轉90度,寫出演算法描述和類c語言程式;

最開始不小心看還理解為轉置去了 後來仔細思考 要在這個原來的矩陣上面操作(節約額外空間),旋轉90度其實挺麻煩的。經過思考 貼程式碼

#include "stdafx.h"

#include

#include

#include

#include

using namespace std;

/*

1請用最少的額外空間將一個M*N的矩陣旋轉90度,寫出演算法描述和類c語言程式;

2完成如下函式,給定分子和分母,輸出其小數表示形式,迴圈節用[]表示,例如給出分子

:13,分母19,輸出為:0.[13]

*/

#define M 8

#define N 8

int randgener()

{

return (rand() % 100);

}

#define NEWINDEX(i) (i%N)*M + M-1-(i/N)

void testPoj1()

{

int a[M*N];

generate(a,a+M*N,randgener );

for (int i = 0 ; i < M;i++)

{

for (int j = 0 ; j < N;j++)

{

cout<