此方法应输入一个2d数组的整数(int[][])
并返回2d int数组,所有负数都替换为零。
例如,如果您发送{{4,5,-6},{7,-8,9}}
,则您的方法应返回{{4,5,6},{7,8,9}}
。
public static int[][] zeroNegatives(int[][] arr)
{
for (int r = 0; r < arr.length; r++)
{
for (int c = 0; c<arr[r].length; c++)
{
if (arr[r][c] < 1)
{
arr[r][c]*-1;
}
}
}
return ;
}
我不确定如何返回二维数组或如何更改二维数组中的元素。
答案 0 :(得分:1)
尝试:
public static int[][] zeroNegatives(int[][] arr)
{
for (int r = 0; r < arr.length; r++) // Loop over array of arrays
{
for (int c = 0; c<arr[r].length; c++) // Loop over arrays
{
if (arr[r][c] < 0) // Check if negative
{
arr[r][c] *= -1; // "Change sign"
}
}
}
return arr;
}
答案 1 :(得分:0)
您可以使用return arr;
简单地返回数组,即您的数组作为参数传递给方法。
答案 2 :(得分:0)
经过测试并正常工作
public static int[][] zeroNegatives(int[][] arr)
{
for (int r = 0; r < arr.length; r++)
{
for (int c = 0; c < arr[r].length; c++)
{
if (arr[r][c] < 0) // if it's negative, it's less than 0, not 1
{
arr[r][c] *= -1; // it will equal itself multiplied by negative 1
}
}
}
return arr;
}
答案 3 :(得分:0)
根据说明,例如,如果您发送{{4,5,-6},{7,-8,9}},您的方法应返回{{4,5,6} ,{7,8,9}} 强>
您不会repace all negative values as zeros
,but to make it to a absolute value
。
然后直接返回arr。
public class Test {
public static void main(String[] args) {
int[][] dataArray = { { 4, 5, -6 }, { 7, -8, 9 } };
for (int[] array : zeroNegatives(dataArray)) {
System.out.println(Arrays.toString(array));
}
}
public static int[][] zeroNegatives(int[][] arr) {
for (int r = 0; r < arr.length; r++) {
for (int c = 0; c < arr[r].length; c++) {
if (arr[r][c] < 0) {
arr[r][c] *= -1;
}
}
}
return arr;
}
}
控制台输出:
[4, 5, 6]
[7, 8, 9]
另外,以下代码更改不是必需的,但是当值为0时,它不会执行0 * = -1,这样的操作不是必需的。
在第二次循环中改变条件。
来自
if (arr[r][c] < 1)
{
arr[r][c] *=-1;
}
到
if (arr[r][c] < 0)
{
arr[r][c] *= -1;
}
答案 4 :(得分:0)
public static int[][] zeroNegatives(int[][] arr)
{
int[][] method2DArr = arr;
for (int r = 0; r < method2DArr.length; r++)
{
for (int c = 0; c<method2DArr[r].length; c++)
{
if (method2DArr[r][c] < 0)// for batter understanding use this, this is good way to write for negative.
{
method2DArr[r][c] = method2DArr[r][c] * (-1) ;
}
}
}
return method2DArr; //return reference.
}
对于击球手的理解,试试这个。
简单地回归参考,而不是火箭科学。
&安培;如果你想用arr srick那么你也可以使用
return arr;
答案 5 :(得分:0)
或者,您可以尝试:
public static int[][] zeroNegatives(final int[][] array){
for(int i = 0; i < array.length; i++)
for(int j = 0; j < array[i].length; j++)
array[i][j] = Math.abs(array[i][j]);
return array;
}
Math.abs(int)
返回n
的绝对值,即距离0的距离。