矩阵旋转类型题从基础到进阶总结
最近在做学校关于数组的题目,趁此把一些矩阵变化旋转轮转的题型总结一波。
之前写过一篇关于旋转矩阵的题解
可以说这类题目并没有考到什么很深奥的算法,但着实考验对基本功的掌握情况。一不小心一个很简单的题目就会被你写出一百多行代码出来。
基础篇:
一、“假”翻转
先看一道题目:
/**********
【习题7.060】编写函数将一个nxn的二维数组按“次对角线”翻转。
例如:翻转前的数组 翻转后的数组
1 2 3 9 6 3
4 5 6 ---> 8 5 2
7 8 9 7 4 1
**********/
emmm,一开始看到这道题目的时候,我还真的想直接翻转,但动手写的时候发现根本无从下手,找不到一个公式可以让所有的对角线翻转。
借鉴上面我写过的旋转矩阵——数组、语句基本功考察
我们可以假翻转,翻转的输出就好了!
然而题目又不要求输出,那我们就先翻转到另一个数组,然后再拷贝回来就好啦
代码如下:
void invert(char a[N][N])
{
int i,j;
int b[N][N];
for