【发布时间】:2016-07-27 14:58:52
【问题描述】:
我正在编写一个试图找到二维数组中间的函数,这就是我目前所拥有的:
int findMiddle(int[][] grid,int [] m) {
int[] list = new int[grid.length*grid[0].length];
int listPos = 0;
for(int i = 0 ; i < grid.length; i++) {
for(int j = 0; j < grid.length; j++) {
list[listPos++] = grid[i][j];
}
}
int middle = m.length/2;
if (m.length%2 == 1) {
return m[middle];
} else {
return (m[middle-1] + m[middle]) / 2.0;
}
}
假设我有一个数组
{{0, 1, 2, 3},
{4, 5, 6, 7},
{8, 9, 0, 1}}
它应该返回 6,因为它是整数除法。 另外,这段代码中middle的定义是整个原始数组的中间整数(有无排序不用说)。
我该怎么做? (我的代码也无法编译)
【问题讨论】:
-
数组是否按行排序?如果没有,您可以按行对数组进行排序,然后取中间列的中间元素。
-
冒泡排序然后取中间数组的中间值。哈哈。
-
我认为您误用了“中位数”一词,从而使人们感到困惑。你的意思是你想要数组的中间值,而不是统计意义上的中值。我建议您将问题中的“中位数”更改为“中间”以避免混淆。
标签: java arrays multidimensional-array compiler-errors