將正方形矩陣順時針旋轉90度

2021-10-25 01:41:12 字數 1402 閱讀 5540

將正方形矩陣順時針旋轉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...