Rotate Image

捕获.PNG

这道题是要翻转一个二维数组,但是要求不能用新的二维数组,要在原有基础上进行改造。
思路如下图(请原谅我用画图直接画出来的)


无标题.png

一层一层进行替换,先是最外层,由四个方向分别替换,需要注意的是替换前需要做好值得备份。
然后表层替换完成再向里层继续替换,如此往复。
这里n为奇数或偶数,层数的计算都会不同,层数的算法放在这里 floor = length/2+(length%2==0?0:1)
这道题逻辑不难,主要是替换位置的计算很复杂,需要计算要替换的位置,其中需要不停的试错。
代码如下

public class rotate {
    public static void rotate(int[][] matrix) {
        int length = matrix[0].length;
        int pre=0;
        int temp=0;
        for(int f=0;f

你可能感兴趣的:(Rotate Image)