Java 调用函数时,无法将int转换为int[]]

Java 调用函数时,无法将int转换为int[]],java,arrays,Java,Arrays,我试图编写一个分治算法,在2d数组中查找元素 功能原型: public boolean searchMatrix(int[][] matrix, int target) 援引: x=searchMatrix(matrix[(rows-1)/2][columns],target); 调用此int时出错,无法将其转换为int[][] 行在开始时作为矩阵计算。长度和列作为矩阵[0]。长度 我想通过阵列的一半 您可以从原始的矩阵数组中创建一个单独的半数组,并将其传递给搜索矩阵方法 int[][]

我试图编写一个分治算法,在2d数组中查找元素

功能原型:

public boolean searchMatrix(int[][] matrix, int target)
援引:

 x=searchMatrix(matrix[(rows-1)/2][columns],target);
调用此int时出错,无法将其转换为int[][]

行在开始时作为矩阵计算。长度和列作为矩阵[0]。长度


我想通过阵列的一半

您可以从原始的
矩阵
数组中创建一个单独的半数组,并将其传递给
搜索矩阵
方法

int[][] halfMatrix = new int[(rows-1)/2][columns];
for(int i=0;i<(rows-1)/2; i++) {
  for(int j=0;j<columns;j++) {
    halfMatrix[i][j] = matrix[i][j];
  }
}

 x=searchMatrix(halfMatrix,target);

我想通过阵列的一半

您可以从原始的
矩阵
数组中创建一个单独的半数组,并将其传递给
搜索矩阵
方法

int[][] halfMatrix = new int[(rows-1)/2][columns];
for(int i=0;i<(rows-1)/2; i++) {
  for(int j=0;j<columns;j++) {
    halfMatrix[i][j] = matrix[i][j];
  }
}

 x=searchMatrix(halfMatrix,target);

如果要在同一数组中继续发送,可以添加两个参数来显示长度和高度:

public boolean searchMatrix(int[][] matrix, int rows, int cols, int target)
后来称之为:

x=searchMatrix(matrix,(rows-1)/2,columns,target);
初始调用将具有原始的行数和列数

编辑

如果要传递数组的不同部分,可以使用一个额外的参数来指示行数和列数。一般来说,这可能是有用的

x=searchMatrix(matrix, rowStartIndex, noOfRows, columnStartIndex, noOfColumns, target);

如果要在同一数组中继续发送,可以添加两个参数来显示长度和高度:

public boolean searchMatrix(int[][] matrix, int rows, int cols, int target)
后来称之为:

x=searchMatrix(matrix,(rows-1)/2,columns,target);
初始调用将具有原始的行数和列数

编辑

如果要传递数组的不同部分,可以使用一个额外的参数来指示行数和列数。一般来说,这可能是有用的

x=searchMatrix(matrix, rowStartIndex, noOfRows, columnStartIndex, noOfColumns, target);

您正在数组
矩阵中查找一个int,然后用它调用该方法。该方法需要对数组的引用,而不是int。因此,
matrix[(rows-1)/2][columns]
是存储在该特定位置的整数,而不是数组。你想用这句话达到什么目的?从偏移量开始传递数组?明白了,非常感谢。我怎样才能通过矩阵的某一部分?我想通过矩阵的一半array@VarunChopra您应该创建另一个矩阵(相同类型的另一个变量->int[][]),并在需要的位置设置值。您正在数组
矩阵中查找int,然后用它调用该方法。该方法需要对数组的引用,而不是int。因此,
matrix[(rows-1)/2][columns]
是存储在该特定位置的整数,而不是数组。你想用这句话达到什么目的?从偏移量开始传递数组?明白了,非常感谢。我怎样才能通过矩阵的某一部分?我想通过矩阵的一半array@VarunChopra您应该创建另一个矩阵(相同类型的另一个变量->int[])并在您需要的位置设置值如果我尝试使用分治,我每次都必须这样做?查看我针对
分治
要求所做的编辑。如果我尝试使用分治,我每次都必须这样做?查看我针对
分治
要求所做的编辑。他想要一个分而治之。。。也许他也应该通过起始栏和起始行。@JawadLeWywadi,是的,这是个更好的主意。OP似乎问他只发送前半行,列不变,但我想一般的答案总是更有用。他想要一个分而治之的答案。。。也许他也应该通过起始栏和起始行。@JawadLeWywadi,是的,这是个更好的主意。OP似乎问他只发送前半行,列不变,但我想一般的答案总是更有用。