首页 > 代码库 > 矩阵逆时针旋转90度,空间复杂度O(1)
矩阵逆时针旋转90度,空间复杂度O(1)
将一个矩阵逆时针旋转90度,首先可以沿左上角-右下角斜对角线,进行上下交换数据,然后上下数据交换即可。
1 #include <stdio.h> 2 #include <stdlib.h> 3 //矩阵逆时针旋转90度 4 int main() 5 { 6 int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; 7 int b[3][3]; 8 int i; 9 int j;10 int temp;11 printf("原始矩阵\n");12 for(i=0;i<3;i++){13 for(j=0;j<3;j++){14 printf("%d ",a[i][j]);15 }16 printf("\n");17 }18 19 printf("第一次转换\n");20 21 for(i=0;i<3;i++){22 for(j=i;j<3;j++){23 temp=a[i][j];24 a[i][j]=a[j][i];25 a[j][i]=temp;26 }27 }28 for(i=0;i<3;i++){29 for(j=0;j<3;j++){30 printf("%d ",a[i][j]);31 }32 printf("\n");33 }34 printf("第二次转换\n");35 for(i=0;i<3/2;i++){36 for(j=0;j<3;j++){37 temp=a[i][j];38 a[i][j]=a[3-i-1][j];39 a[3-i-1][j]=temp;40 }41 }42 43 for(i=0;i<3;i++){44 for(j=0;j<3;j++){45 printf("%d ",a[i][j]);46 }47 printf("\n");48 }49 50 return 0;51 }
矩阵逆时针旋转90度,空间复杂度O(1)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。