如何反转4x4阵列中的行

时间:2016-03-30 16:27:06

标签: java arrays multidimensional-array reverse

我对此很新,我无法解决这个问题。我基本上得到了一个4x4阵列,如:

5 2 1 7
3 2 4 4
7 8 9 2
1 2 4 3

我正在尝试反转特定的行,我正在寻找任何在线搜索特定行的内容,所以我想知道是否有人可以告诉我如何处理这个问题。

如果用户要求将第0行反转,那么所需的输出就会返回

7 1 2 5
3 2 4 4
7 8 9 2
1 2 4 3

我尝试了但是我的代码无效。这是我的代码:

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

提前致谢!

2 个答案:

答案 0 :(得分:0)

使用特定的行数和数组,我相信这将有效。试试看,让我知道。

 function rowSwitch(row_num, arr) {

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

 }

答案 1 :(得分:0)

好的,首先,无论何时运行数据结构,都要尝试不使用它。 你在这里通过切换第一个和最后一个来改变数组,但是如果长度是奇数会发生什么?有一个案例你没有处理。 其次,你运行的是错误的索引,两个都是arr [i] .length == arr.length 如果这不是一个正方形,它也会有错误...

如果您遇到索引问题,我会保存一维数组并进行切换。

尝试使用此代码:

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