【发布时间】:2018-12-15 09:11:35
【问题描述】:
我正在尝试反转和翻转一个二维数组,但是出了点问题!翻转工作正常,但反转不是。 在这里找不到错误:
public int[][] flipAndInvert(int[][] A) {
int row = -1;
int col = -1;
int[][] arr = A;
for (int i = 0; i < arr.length; i++) {
row++;
col = -1;
for (int j = arr[i].length - 1; j >= 0; j--) {
col++;
arr[row][col] = A[i][j];
}
}
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
if (arr[i][j] == 1) {
arr[i][j] = 0;
} else {
arr[i][j] = 1;
}
}
}
return arr;
}
int[][] A = { { 0, 1, 1 },{ 0, 0, 1 },{ 0, 0, 0 } };
继续之后的输出应该是: 反转后: {1,1,0},{1,0,0},{0,0,0} 翻转后: {0,0,1,},{0,1,1},{1,1,1}
非常感谢大家,问题出在这里: int[][] arr = A; 数组的引用正在传递给 arr。
【问题讨论】:
-
您能分享一个示例二维数组以及您想要得到的结果吗?这将有助于使问题更清楚。
-
出了什么问题?实际输出与您的预期输出有何不同?
-
@Mureinik 添加了
-
您的翻转不起作用。我从输入数组
{ {0,1,1}, {0,1,1}, {0,1,1} }得到{ {1,1,1}, {1,1,1}, {1,1,1}。这似乎不是你想要的。 -
@mypetlion 前两个“for”循环正在反转,接下来的两个翻转数组,所以我在这里找不到错误
标签: java arrays reverse flip inversion