【发布时间】:2017-11-21 10:27:46
【问题描述】:
我需要编写一个接收一维数组的函数 例如:[2,5,3] 我需要创建以下二维数组: [[2,-5,-3][-2,5,-3][-2,-5,3]
我的代码是:
for (int i=0; i<vars.length; i++){
for (int j=0; j<vars.length; j++)
tempVars[j] = vars[j]*(-1);
tempVars[i] = tempVars[i]*(-1);
solution[i] = tempVars;
}
return solution ;
}
但是我得到的输出是: [[-2, -5, 3], [-2, -5, 3], [-2, -5, 3]]
该函数仅将最后一个 1D 数组放入所有 2D 数组单元格中。
我做错了什么?
【问题讨论】:
-
从外观上看,您只创建了一个数组
tempVars,您在循环中覆盖并多次添加到solution数组中。您需要为每个可能的结果创建一个数组,而不是一次又一次地使用相同的数组。