方陣順時針旋轉(zhuǎn)的實現(xiàn)代碼
例如,如下的方陣:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
順時針旋轉(zhuǎn),卻是如下結(jié)果:
13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4
#include <stdio.h>
void rotate(int* x, int rank)
{
int* y = (int*)malloc(sizeof(int) * rank * rank);
for(int i=0; i<rank * rank; i++)
{
// 以原第一行進行分析 一行數(shù)變?yōu)橥涣?nbsp; 以原第一列為例,變?yōu)橥恍小?nbsp; (i%rank)*rank使列變?yōu)樾?nbsp; rank-(i/rank)-1) 使行變?yōu)榱?BR> y[(i%rank)*rank+(rank-(i/rank)-1) ] = x[i];
}
for(i=0; i<rank*rank; i++)
{
x[i] = y[i];
}
free(y);
}
int main(int argc, char* argv[])
{
int x[4][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
int rank = 4;
rotate(&x[0][0], rank);
for(int i=0; i<rank; i++)
{
for(int j=0; j<rank; j++)
{
printf("%4d", x[i][j]);
}
printf("\n");
}
return 0;
}
相關(guān)文章
C++實現(xiàn)LeetCode(59.螺旋矩陣之二)
這篇文章主要介紹了C++實現(xiàn)LeetCode(59.螺旋矩陣之二),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07

