旋轉正方形矩陣

2021-09-26 10:50:29 字數 894 閱讀 4986

【題目】

給定乙個整型正方形矩陣matrix,請把該矩陣調整成 順時針旋轉90度的樣子。

【要求】額外空間複雜度為o(1)。

例如: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

思路:巨集觀代替微觀的思想

先旋轉外圈,左上角(a,b)和右下角(c,d)可以確定乙個子矩陣,然後a+1, b+1, c-1, d-1,旋轉第二圈…迴圈列印下去,當左上角座標在右下角下標的右/下方時,迴圈終止。

**:

package basic_class_03;

/** * 類名:code_05_rotatematrix

* 功能:旋轉正方形矩陣

* 【題目】 給定乙個整型正方形矩陣matrix,請把該矩陣調整成 順時針旋轉90度的樣子。

* 歷史修訂:

*/public class code_05_rotatematrix {

public static void rotate(int matrix){

int tr=0;

int tc=0;

int dr=matrix.length-1;

int dc=matrix[0].length-1;

while (tr測試結果:

旋轉正方形矩陣

題目 給定乙個整型正方形矩陣matrix,請把該矩陣調整成 順時針旋轉90度的樣子。要求 額外空間複雜度為o 1 思路 採用分圈處理的方式,利用矩陣的左上角座標和右下角座標,例如矩陣 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 最外層 1 4 16 13 替換 2 ...

旋轉正方形矩陣

將整個旋轉過程轉化為由外向內逐層旋轉 使用四個指標lr,lc,rr,rc lr,lc 標記正方形左上角位置座標 rr,rc 標記正方形右下角位置座標 times rr lr用來計算這一層需要調換的次數 void rotate int arr,int lr,int lc,int rr,int rc 旋...

旋轉正方形矩陣

題目 給定乙個整型正方形矩陣matrix,請把該矩陣調整成順時針旋轉90度的樣子。要求 額外空間複雜度為o 1 解答 還是一圈圈的旋轉,首先旋轉最外面,然後逐層向里,在旋轉的時候唯一需要注意的就是元素之間的位置替換 圖形化 順時針旋轉矩陣 20200109100649.png class solut...