试图将2D阵列顺时针旋转90度,但逆时针旋转

时间:2017-08-23 18:30:52

标签: java arrays

public class Rotate
{
public static int[][] rotateArray(int[][] orig)
{
    int[][] neo = new int[orig.length][orig[0].length];
    for(int r = 0; r < orig.length; r++)
    {
        for(int c = 0; c < orig[0].length; c++)
        {
            neo[(orig.length - 1) - c][r] = orig[r][c];
        }
    }
    return neo;
}
}

之前已经回答过这个问题,但由于我是编程新手而且我所知道的是Java,我无法按照我发现的最好的例子,因为它是在C#中。对不起,副本。 我将新的旋转数组命名为neo,因为我想要原始和新的,但后来记得新的不能用来命名变量,所以我使用neo意味着新的:)

1 个答案:

答案 0 :(得分:0)

这是对代码示例的简单修改。注意旋转的数组维度和旋转代数是如何改变的。

static int[][] rotateArrayCW(int[][] orig) {
    final int rows = orig.length;
    final int cols = orig[ 0 ].length;

    final int[][] neo = new int[ cols ][ rows ];

    for ( int r = 0; r < rows; r++ ) {
        for ( int c = 0; c < cols; c++ ) {
            neo[ c ][ rows - 1 - r ] = orig[ r ][ c ];
        }
    }

    return neo;
}