將正方形矩陣順時針旋轉90度
給定乙個n*n的矩陣matrix,請把這個矩陣順時針轉動90度。
輸入描述:
輸入包含多行,第一行乙個整數n(1
≤n
≤200
)n(1 \leq n \leq 200)
n(1≤n≤
200)
,代表矩陣的行數和列數,接下來n行,每行n個整數,代表矩陣mat
rix(
1≤ma
trix
[i][
j]
≤40000
)matrix(1 \leq matrix[i][j] \leq 40000)
matrix
(1≤m
atri
x[i]
[j]≤
4000
0)。輸出描述:
輸出旋轉後的矩陣(包含n行,每行n個數)。
示例1輸入
4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
輸出13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4
備註:
額外空間複雜度o(1
)o(1)
o(1)
。題解:
仍然分層處理,使用左上角和右下角兩個點表示乙個子矩陣。比如在樣例中,左上角為(0,0),右下角為(3,3)就可以表示整個矩陣。其最外層如下:
1 2 3 4
5 8
9 12
13 14 15 16
在這層中,1,4,16,13為一組,依次互換位置,即調整完一組。然後是 2,8,15,9,等等。該層調整完成後,繼續下一層調整,直到整個矩陣被處理完畢。
**:
#include
using
namespace std;
const
int n =
200;
int n;
int a[n]
[n];
intmain
(void
)int tr =
0, tc =0;
int dr = n -
1, dc = n -1;
int tmp, num;
while
(tr < dr)
++tr,
++tc;
--dr,
--dc;
}for
(int i =
0; i < n;
++i)
return0;
}
將正方形矩陣順時針轉動90度
題目 給定乙個n n的矩陣matrix,求把這個矩陣調整成順時針轉動90度後的形式。例如 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 順時針轉動90度後為 13 9 5 1 14 10 6 2 15 11 7 3 16 12 8 4 要求 額外空間複雜度為o 1 解...
Java實現矩陣順時針旋轉90度
實現矩陣的轉置較為容易,只需要將縱橫下標互換即可。實現矩陣旋轉稍微麻煩一點。解題思路 矩陣轉換90度,則原矩陣的縱下標轉變為新矩陣的橫下標 原矩陣的橫下標轉變為新矩陣的縱下標,並且順序相反。public class rotation public static int change int matr...
矩陣順時針轉動90度
輸入描述 輸入包含多行,第一行乙個整數n 1 n 200 代表矩陣的行數和列數,接下來n行,每行n個整數,代表矩陣matrix 1 matrix i j 40000 輸出描述 輸出旋轉後的矩陣 包含n行,每行n個數 示例1輸入 41 2 3 4 5 6 7 8 9 10 11 12 13 14 15...