矩阵旋转(图像旋转)

CareerCup原题:

Given an image represented by an NxN matrix, where each pixel in the image is 4 bytes, write a method to rorate the image by 90 degrees. Can you do this in palce?
旋转可以一层一层来旋转。旋转矩阵某个值所在的位置会变,但是所在的层不变。如下图,A在最外层,B在次层。

AAAA

ABBA

ABBA

AAAA

按层循环来旋转每一层。
在旋转某一层时,保存上面的值,把左边的值放到到上面,下面的值放到到左边,右边的值放到到下面,再把保存的上面的值放到右边。依次循环,这样就不许额外空间。 
 

void rotate(int matrix[][N],int n)//传递二维数组,指定第二维维数
{
	for(int layer=0; layer

测试代码:

#include
using namespace std;
#define N 3
int matrix[3][3];
int main()
{
	int k=1;
	for(int i=0; i



你可能感兴趣的:(面试笔试题目)