当前位置: 首页 > 知识库问答 >
问题:

反向 2d 数组行

慕容恩
2023-03-14

我有二维数组

int firstDimension = data.length / 8;
int secondDimension = 8;
int[][] arr = new int[firstDimension][secondDimension];

[[1, 1, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1], [1, 0, 1, 0, 1, 0, 1, 0]]
   

我需要反转数组行并获取:

[[1, 0, 1, 0, 1, 0, 1, 0], [0, 0, 0, 0, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1]

我发现算法可以反转1d数组元素:

   for (int i = 0; i < validData.length / 2; i++) {
            int temp = validData[i];
            validData[i] = validData[validData.length - i - 1];
            validData[validData.length - i - 1] = temp;
        }

如何反转数组行?

共有1个答案

咸弘雅
2023-03-14
    int[][] arr = {{1, 1, 1, 1, 1, 1,1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1}, {1, 0, 1, 0, 1, 0, 1, 0}};
    
    //assuming all arrays in arr have same length!
    int[][] arr2 = new int [arr.length][arr[0].length];         
    int k = arr2.length-1;
    
    //copy in reverse order
    for (int i = 0; i < arr.length; i++) {          
        for (int j = 0; j < arr[i].length; j++) {
            int temp = arr[i][j];
            arr2[k][j] = temp;
        }
        k--;
    }
    
    //print arr2
    for (int i = 0; i < arr2.length; i++) {
        System.out.print("{");
        for (int j = 0; j < arr2[i].length; j++) {
            System.out.print(arr2[i][j]);
        }
        System.out.print("}");
    }

仅当< code>arr中的所有数组长度相同时,此解决方案才有效

 类似资料:
  • 本文向大家介绍反向求和数组JavaScript,包括了反向求和数组JavaScript的使用技巧和注意事项,需要的朋友参考一下 我们需要编写一个函数,比如说要接受两个Numbers数组,比如说first和second,然后返回一个包含以下内容的新数组, 第一个数组的第一个元素与第二个数组的最后一个元素作为第一个元素的和, 第一个数组的第二个元素与第二个数组的倒数第二个元素的和,依此类推。 当任何一

  • 问题内容: numpy中最简单的方法来反转数组的最内部值是这样的: 这样我得到以下结果: 非常感谢你! 问题答案: 怎么样: 而最后一个维度的反方向是: 要么 尽管我更喜欢后者,因为前两个维度是隐式的,因此很难看到正在发生的事情。

  • 在print语句中:(假设整数大小为4字节) 让arr的内存位置为1000 arr 1——给出1016(即下一行内存) 我理解了逻辑,但我无法理解编译器如何将 arr标识为“指向4整数数组的指针”,并且 即使在增量之前两者都指向相同的地址(1000)

  • 问题内容: 这是我的数组代码,我需要反向打印。 问题答案: 只需反转for循环的方向即可。现在,它从0到长度开始计数,从长度到0开始计数

  • 似乎Lodash的sortedIndex期望一个前向排序数组来进行二进制搜索。(例如)

  • 问题内容: 我正在尝试初始化一个2D数组,其中每个元素的类型为 char 。到目前为止,我只能按照以下方式初始化此数组。 我认为如果数组是10 * 10,这是简单的方法。 有什么有效的方法吗? 问题答案: 这样的事情怎么样: 以下完整的Java程序: 输出: 之所以有效,是因为Unicode中的数字是连续的,从\ u0030开始(这是您从中得到的)。 表达式(您可以在其中变化以及介于两者之间(包括