【问题标题】:How to inverse the coordinates of a two dimensional array? [duplicate]如何反转二维数组的坐标? [复制]
【发布时间】:2018-10-12 16:08:37
【问题描述】:

我想在 Java 中完全反转二维数组的 x 和 y 坐标。此外,它可以反转具有不同长度的二维数组。 例如: 数组[行][列] = 数组[列][行];

【问题讨论】:

标签: java arrays


【解决方案1】:

只有在两个维度相等时才能进行此操作。如果是这样,遍历每一行,然后交换所有大于该行的列位置。

所以,假设你有一个 3x3 数组,你想交换:

第一个循环: 0,1 与 1,0 0,2 与 2,0

第二个循环: 1,2 与 2,1

第三个循环: 无事可做

要循环使用for。要获取给定数组的长度,请使用array.length。要交换,请创建一个临时变量。例如:

int x = array[c][r];
array[c][r] = array[r][c];
array[r][c] = x;

这将交换 [c,r] 和 [r,c]。

【讨论】:

  • 如果尺寸不相等也可以进行此操作。但它不会到位。如果这不是真正的要求,只需创建另一个交换维度的数组并迭代原始数组,将索引[c] [r] 处的每个元素分配给新数组的索引[r] [c] 处的元素
【解决方案2】:

你可以使用类似的东西

public static int[][] transpose(int[][] matrix)
{
    int m = matrix.length;
    int n = matrix[0].length;

    int[][] transposedMatrix = new int[n][m];

    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
        {
            transposedMatrix[i][j] = matrix[j][i];
        }
    }

    return transposedMatrix;
}

【讨论】:

    猜你喜欢
    • 2021-08-19
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多