生活随笔
收集整理的這篇文章主要介紹了
数据结构与算法之转圈打印矩阵和旋转正方形矩阵
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
數據結構與算法之轉圈打印矩陣和旋轉正方形矩陣
目錄
轉圈打印矩陣旋轉正方形矩陣
1. 轉圈打印矩陣
題目描述
代碼實現
public class Code_PrintMatrixSpiralOrder {public static void spiralOrderPrint(int[][] matrix
) {int tR
= 0;int tC
= 0;int dR
= matrix
.length
- 1;int dC
= matrix
[0].length
- 1;while (tR
<= dR
&& tC
<= dC
) {printEdge(matrix
, tR
++, tC
++, dR
--, dC
--);}}public static void printEdge(int[][] m
, int tR
, int tC
, int dR
, int dC
) {if (tR
== dR
) {for (int i
= tC
; i
<= dC
; i
++) {System
.out
.print(m
[tR
][i
] + " ");}} else if (tC
== dC
) {for (int i
= tR
; i
<= dR
; i
++) {System
.out
.print(m
[i
][tC
] + " ");}} else {int curC
= tC
;int curR
= tR
;while (curC
!= dC
) {System
.out
.print(m
[tR
][curC
] + " ");curC
++;}while (curR
!= dR
) {System
.out
.print(m
[curR
][dC
] + " ");curR
++;}while (curC
!= tC
) {System
.out
.print(m
[dR
][curC
] + " ");curC
--;}while (curR
!= tR
) {System
.out
.print(m
[curR
][tC
] + " ");curR
--;}}}public static void main(String
[] args
) {int[][] matrix
= { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 },{ 13, 14, 15, 16 } };spiralOrderPrint(matrix
);}
}
編譯結果
旋轉正方形矩陣
題目描述
代碼實現
public class Code_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
<dR
){rotateEdge(matrix
,tR
++,tC
++,dR
--,dC
--);}}public static void rotateEdge(int[][] m
, int tR
, int tC
, int dR
, int dC
) {int tmp
= 0;int times
= dC
-tC
;for (int i
= 0; i
!= times
; i
++) {tmp
= m
[tR
][tC
+i
];m
[tR
][tC
+i
] = m
[dR
-i
][tC
];m
[dR
-i
][tC
] = m
[dR
][dC
-i
];m
[dR
][dC
-i
] = m
[tR
+i
][dC
];m
[tR
+i
][dC
] = tmp
;}}public static void printMatrix(int[][] matrix
) {for (int i
= 0; i
!= matrix
.length
; i
++) {for (int j
= 0; j
!= matrix
[0].length
; j
++) {System
.out
.print(matrix
[i
][j
] + " ");}System
.out
.println();}}public static void main(String
[] args
) {int[][] matrix
= { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 },{ 13, 14, 15, 16 } };printMatrix(matrix
);rotate(matrix
);System
.out
.println("=========");printMatrix(matrix
);}
}
總結
以上是生活随笔為你收集整理的数据结构与算法之转圈打印矩阵和旋转正方形矩阵的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。