輸入描述:
輸入包含多行,第一行乙個整數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 16
輸出13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4
備註:額外空間複雜度o(1)。
思路:拿到這個題,我本來是想重新建立乙個相同大小的二維陣列,然後把原陣列的資料按題目要求搬移過去就好了,但是這個題要求是空間複雜度為o(1)。那這樣做就不行。換個思路,注意到1->4,4->16,16->13,13->1,同樣的2->8,8->15,15->9,9->2一樣的規律,按照這樣的規律交換,就可以把外圈旋轉90度,但是還有內圈呢,加乙個迴圈就可以搞定啦!
**:
#include#includeusing namespace std;
void print_matrix(vector> vv)
}rotate(vv,n);
}return 0;
}
將正方形矩陣順時針轉動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度
將正方形矩陣順時針旋轉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 ...