顺时针旋转矩阵九十度
2018-03-08 21:21
176 查看
/** * 将一个矩阵(一定是正方形)顺时针旋转九十度 */ public class C06_RotateMatrix { public static void rotateMatrix(int[][]arr){ if(arr==null || arr.length==0 || arr[0].length==0){ return ; } int a = 0;//左上角,列 int b = 0;//左上角,行 int c = arr[0].length-1;//右下角,列 int d = arr.length-1;//右下角,行 while(a<=c && b<=d){ rotateEdge(arr, a++, b++, c--, d--); } } public static void rotateEdge(int[][]arr,int a,int b,int c,int d){ int times = c - a; for (int i = 0; i < times; i++) { int t = arr[b][a+i]; arr[b][a+i] = arr[d-i][a]; arr[d-i][a] = arr[d][c-i]; arr[d][c-i] = arr[b+i][c]; arr[b+i][c] = t; } } public static void printMatrix(int[][]arr){ for(int i = 0;i<arr.length;i++){ for (int j = 0; j < arr[i].length; j++) { System.out.print(arr[i][j]+" "); } System.out.println(); } } public static void main(String[] args) { int arr[][] = new int[][]{ {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16} }; printMatrix(arr); rotateMatrix(arr); System.out.println("======"); printMatrix(arr); } }
相关文章推荐
- 顺时针旋转矩阵
- leecode 矩阵顺时针旋转90度
- 把N*N矩阵顺时针旋转90°输出(2018携程校招笔试题)
- 【重构】人人都来写算法 之 矩阵顺时针旋转90度,空间效率O(1),时间效率O(n*n)
- 顺时针旋转矩阵
- Arithmetic problem | 在原地顺时针90度旋转矩阵图像
- [LeetCode] Rotate Image n-by-n矩阵顺时针旋转
- 牛客网——顺时针旋转矩阵
- 每天一道LeetCode-----顺时针旋转n×n矩阵90度
- 矩阵顺时针旋转90度
- M*N矩阵顺时针旋转90度
- 用css将一行文字顺时针旋转九十度的办法【样式如图,具体情况具体调整】
- 把矩阵顺时针旋转90度
- 顺时针旋转打印n阶矩阵(内测第0届第4题)
- Java实现矩阵顺时针旋转90度
- 面试题6 将一个n*n图像矩阵顺时针旋转90°
- 由外向内顺时针&逆时针旋转矩阵
- 将n*n矩阵顺时针旋转90度
- 矩阵顺时针旋转90度
- 【牛客网】马三来刷题之顺时针旋转矩阵