如何返回2D数组方法

问题描述 投票:-2回答:1

我一直收到错误,因为我的代码不会返回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;
}
java arrays multidimensional-array
1个回答
0
投票

正如您所提到的,您尝试以这种方式将值放在二维数组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];
© www.soinside.com 2019 - 2024. All rights reserved.