我一直收到错误,因为我的代码不会返回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;
}
正如您所提到的,您尝试以这种方式将值放在二维数组int[][] answer
中:
answer = {arr[first]arr[last]};
但是将值放入2d数组的正确方法是:
answer[rowNumber][coulmnNumber]=someValue;
example: answer[0][1]=5;
边注:
findPairsWithGivenDifference
你返回一个int[][]
。在您当前的代码中,返回int[][]
可能不会初始化,因为您正在answer
语句中初始化2D数组(if
)。您需要在if
语句之外初始化返回值。一种方法是更改这行代码:
int [] []回答;
至:
int [] [] answer = new int [wantedRowsNumbers] [wantedCoulmnsNumbers];