問題
you are given annx
n2d matrix representing an image.
rotate the image by 90 degrees (clockwise).
follow up:
could you do this in-place?
結合查詢到的資料做個總結。
1. 對角交換+以中間線左右交換
觀察交換前後陣列關係,發現:
原陣列第一行變成新陣列最右邊一列
原陣列第二行變成新陣列最右邊第二列
……那麼**就簡單,見最後附錄**。
2. 四元組為單位旋轉
分析陣列,發現規律:
a[i][j] = a[n-1-j][i](左邊指旋轉後元素)
使用快捷鍵:
對於陣列,終止條件為:
ij>=i && j(具體分析見
源**
/* copright reserved by miraclecoder
* no permit to delete the link:
*/
#define
n 4
void
printmatrix
(intm[
n][n],
const
char
*str
)
cout
<<
endl
;
}
}
void
rotate
(int
matrix[n
][n])
for(
inti =0
;i ++i
)
printmatrix
(matrix
,"after rotate 90 degree\n"
);
}
void
rotate90degree
(int
matrix[n
][n])
}
printmatrix
(matrix
,"after rotate 90 degree\n"
);
}
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 ...
旋轉陣列(順時針90度,180度,270度)
順時針旋轉90 第一種是用座標變換法,在網上看到的一種座標變換 順時針90 newarr i j arr n 1 j i 順時針180 newarr i j arr n 1 i n 1 j 順時針270 newarr i j arr j n 1 i 第二種根據特點,先觀察matrix與轉置後的mat...