[LeetCode] Rotate Image

来源:互联网 发布:淘宝erp是什么意思 编辑:程序博客网 时间:2024/06/08 14:58

题目:

You are given an n×n 2D matrix representing an image.

Rotate the image by 90 degrees (clockwise).

Follow up: Could you do this in-place?


分析:

要达到in-place的要求,我们采用交换的方法,顺序是左上先和左下交换,然后左上和右下交换,然后左上和右上交换。


代码:

public class RotateImage {public void rotate(int[][] matrix) {//计算圈数int n = matrix.length, lvl = n / 2;for(int i = 0; i < lvl; i++) {for(int j = i; j < n - i - 1; j++) {//左上和左下交换swap(matrix, i, j, j, n - i - 1);//左上和右下交换swap(matrix, i, j, n - i - 1, n - j - 1);//左上和右上交换swap(matrix, i, j, n - j - 1, i);}}}private void swap(int[][] matrix, int i1, int j1, int i2, int j2) {int tmp = matrix[i1][j1];matrix[i1][j1] = matrix[i2][j2];matrix[i2][j2] = tmp;}}





原创粉丝点击