java - 尝试将二维数组顺时针旋转 90 度,但它是逆时针旋转

标签 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,因为我想要原始的和新的,但后来想起 new 不能用于命名变量,所以我使用 Neo,这意味着新的:)

最佳答案

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

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;
}

关于java - 尝试将二维数组顺时针旋转 90 度,但它是逆时针旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45847027/

相关文章:

java - 为什么我们不能对声明为父类类型且元素包含子类引用的数组使用仅子方法?

java - 创建线程会导致 Android 应用程序强制关闭

java - 如何获得 MQTT 订阅

java - 如何使用 Java Mail API 验证电子邮件和密码?

javascript - 数组碰撞检测中的 p5.js 对象

java - 线程中出现异常 "dispatcher-event-loop-1"java.lang.OutOfMemoryError : Java heap space

python - 具有多维的 numpy 数组的类似列表理解的方法

c# - 如何将Dictionary <int,long>转换为字符串数组/列表?

检查数组索引是数字还是字母?

arrays - 如何搜索字符串数组并快速返回特定值?