java - 如何在不使用存储阵列的情况下将 2D 阵列旋转 90 度?

标签 java arrays matrix multidimensional-array rotation

我被指示不要使用存储阵列来完成此任务。基本上,我们必须创建一个将二维数组的内容旋转 90 度的函数。

所以如果我从这个数组开始:

int[][] array = {{1,2,3}, {4,5,6}, {7,8,9}};

该函数应返回一个如下所示的数组:

{{7,4,1}, {8,5,2}, {9,6,3}}

同样,我们不允许在函数中使用创建的数组进行存储。 是否可以在没有存储阵列的情况下完成此任务?

最佳答案

您可以通过将上半部分与下半部分一一交换来旋转/转置数组:

import java.util.*;
import java.lang.*;
import java.io.*;

class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        // your code goes here
        int[][] array = new int[][] {
            new int[] { 1, 2, 3},
            new int[] { 4, 5, 6},
            new int[] { 7, 8, 9},
        };

        for (int row = 0; row < 3; row++) {
            for (int col = 0; col < row; col++) {
                int t = array[row][col];
                array[row][col] = array[col][row];
                array[col][row] = t;
            }
        }

        for (int row = 0; row < 3; row++) {
            System.out.println(Arrays.toString(array[row]));
        }
    }
}

关于java - 如何在不使用存储阵列的情况下将 2D 阵列旋转 90 度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52619181/

相关文章:

java - ListView 显示不同类型的行

java - 将数组拆分并排序为多个数组

PHP 错误,成员初始化程序中 array() 中的串联

opencv - 如何在 Mat 中查找特定区域中的非零像素

java - Jacoco 在运行单元测试时在我的界面中添加了一个 $jacocoInit 方法

java - 自定义对话框的宽度和高度

java - JButton & Action & KeyBinding

javascript - 使用谷歌应用脚​​本按日期过滤数组

matrix - 快速可视化一个大的二进制矩阵?

r - R 中的一个如何在矩阵上应用带有 "for"语句的 "if"函数来创建平滑函数