最近網上看了阿里巴巴的筆試題目 有一個是:
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<