我一直收到错误,因为我的代码无法返回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;
}
答案 0 :(得分:0)
正如您所提到的,您尝试以这种方式将值放在2D数组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];