[英]C++ Rotate 3x3 grid made of 9 character char array?
我有一個看起來像這樣的網格
X . .
. . .
. . .
由字符數組制成,我將如何向左或向右旋轉 90 度? 看起來像
. . X
. . .
. . .
右旋90度后
向左或逆時針方向旋轉矩陣:-
讓給定的矩陣是
a b c
d e f
g h i
首先我們找到轉置。
a d g
b e h
c f i
然后我們反轉每一列的元素。
c f i
b e h
a d g
向右或順時針方向旋轉矩陣:-
讓給定的矩陣是
a b c
d e f
g h i
首先我們找到轉置。
a d g
b e h
c f i
然后我們反轉每一行的元素。
g d a
h e b
c f i
此問題的代碼
void rotate90Clockwise(char a[N][N])
{
// Traverse each cycle
for (int i = 0; i < N / 2; i++) {
for (int j = i; j < N - i - 1; j++) {
// Swap elements of each cycle
// in clockwise direction
char temp = a[i][j];
a[i][j] = a[N - 1 - j][i];
a[N - 1 - j][i] = a[N - 1 - i][N - 1 - j];
a[N - 1 - i][N - 1 - j] = a[j][N - 1 - i];
a[j][N - 1 - i] = temp;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.