如何返回二维数组方法

时间:2017-12-24 01:27:17

标签: java arrays multidimensional-array

我一直收到错误,因为我的代码无法返回2D数组。 如何将我想要的值存储到答案中。

static int[][] findPairsWithGivenDifference(int[] arr, int k) {

   int sizeOfArray = arr.length;
   int[][] answer;
   Arrays.sort(arr);
   int first = 0, last = 1;

   while(last < sizeOfArray && first < sizeOfArray){
     if(first != last && arr[last] - arr[first] == k){

         // this is where the problem is, how do I return these values in
         // [[0, 1], [2, 5]] format
         answer = {arr[first]arr[last]};
         first++;
         last++;
   }else if(arr[last] - arr[first] < k){
       last++;
   }else{
       first++;
  }
} // end of while

return answer;
}

1 个答案:

答案 0 :(得分:0)

正如您所提到的,您尝试以这种方式将值放在2D数组int[][] answer中:

 answer = {arr[first]arr[last]};

但是将值放入2d数组的正确方法是:

answer[rowNumber][coulmnNumber]=someValue;
example: answer[0][1]=5;

旁注:

  1. 在方法findPairsWithGivenDifference中,您将返回int[][]。在您当前的代码中,您返回int[][]可能无法初始化,因为您正在answer语句中初始化2D数组(if)。 您需要在if语句之外初始化返回值。一种方法是更改​​这行代码:

    int [] []回答;

    为:

    int [] [] answer = new int [wantedRowsNumbers] [wantedCoulmnsNumbers];

相关问题