RotateImage问题

旋转图像问题。

在计算机中图片都是以二进制数组存储的,所以旋转图像问题就对应于数组变换的问题。
输入:一个二维数组
输出:clockwise 旋转90°后的二维数组

用例:
用例

分析

还是类似于找规律的问题。可以发现 m[i][j] = m[n-1-j][i]

思路

每一轮做一个类似闭环的4个元素交换


元素交换示意图

唯一要注意的就是循环结束条件。

代码

package day_11;

import java.util.Arrays;
// 数组顺时针旋转 90°的问题。
// 观察到一个规律就是说 m[i][j] = m[n-1-j][i]
// 由于不能allocate 一个新的二维数组。 下面就要做一个闭环的交换
public class RotateImage {
    public void rotate(int[][] matrix){
        int n = matrix.length;
        for (int i=0;i

你可能感兴趣的:(RotateImage问题)