/**
* Created by lxw, liwei4939@126.com on 2017/11/2.
* 将一方阵顺时针旋转90度
* 使用分圈处理方式
*/
public class rotateMatrix {
public 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 void rotateEdge(int[][] matrix, int tR, int tC, int dR, int dC){
int times = dC - tC;
int tmp = 0;
for (int i =0; i< times; i++){
tmp = matrix[tR][tC + i];
matrix[tR][tC + i] = matrix[dR -i][tC];
matrix[dR -i][tC] = matrix[dR][dC -i];
matrix[dR][dC -i] = matrix[tR + i][dC];
matrix[tR + i][dC] = tmp;
}
}
public static void main(String[] args){
rotateMatrix tmp = new rotateMatrix();
int[][] matrix = {{1, 2, 3, 4},{5, 6, 7, 8}, {9, 10, 11, 12},
{13, 14, 15, 16}};
tmp.rotate(matrix);
for (int[] arr: matrix){
for (int i=0; i< arr.length; i++){
System.out.print(arr[i]+ " ");
}
System.out.println();
}
}
}
将一方阵顺时针旋转90度
最新推荐文章于 2022-12-02 16:25:09 发布