在二维数组中查找最大数字索引
Find Maximum Number Index In 2D Array
所以我试图想出这个方法来显示二维数组中最大数字的索引。我能够为单个 D 阵列执行此操作,但我无法为 2D 执行此操作。
public static int findMaximumValue(int[ ][ ] a)
{
int maxVal = a [0][0];
int i = 0;
for(i = 0; i < a.length; i++)
{
for(int j = 0; j < a[0].length; j++)
{
if(a[i][j] > maxVal)
{
maxVal = a[i][j];
}
}
}
return(maxVal);
}
二维数组
public static int [][] findMaximumIndex(int[ ][ ] a)
{
int maxVal = a[0][0];
int [][] maxIndex = new int [1][2];
int row = 0, col = 0;
for(row = 0; row < a.length; row++)
{
for(col = 0; col < a[row].length; col++)
{
if(a[row][col] > maxVal)
{
maxVal = a[row][col];
maxIndex [1] [2] = a[row][col];
}
}
}
return(maxIndex);
}
首先,当您想要 return maxValue 的索引时,您正在 returning 一个 2d int 数组,这将是一个行索引和一个列索引。也许您想 return 一个大小为 2 的数组来表示这个?更多信息会有所帮助。其次,我不确定您对 maxIndex 二维数组做了什么。每次遍历二维数组时,只需将最大值与当前元素进行比较即可。还没有 IDE 接近调试但应该是这样的:
public static int[] findMaximumIndex(int[ ][ ] a)
{
int maxVal = -99999
int[] answerArray = new int[2];
for(int row = 0; row < a.length; row++)
{
for(int col = 0; col < a[row].length; col++)
{
if(a[row][col] > maxVal)
{
maxVal = a[row][col];
answerArray[0] = row;
answerArray[1] = col;
}
}
}
return answerArray;
}
此处 answerArray[0] 将具有最大元素的行索引,而 answerArray[1] 将具有最大元素的列索引
所以我试图想出这个方法来显示二维数组中最大数字的索引。我能够为单个 D 阵列执行此操作,但我无法为 2D 执行此操作。
public static int findMaximumValue(int[ ][ ] a)
{
int maxVal = a [0][0];
int i = 0;
for(i = 0; i < a.length; i++)
{
for(int j = 0; j < a[0].length; j++)
{
if(a[i][j] > maxVal)
{
maxVal = a[i][j];
}
}
}
return(maxVal);
}
二维数组
public static int [][] findMaximumIndex(int[ ][ ] a)
{
int maxVal = a[0][0];
int [][] maxIndex = new int [1][2];
int row = 0, col = 0;
for(row = 0; row < a.length; row++)
{
for(col = 0; col < a[row].length; col++)
{
if(a[row][col] > maxVal)
{
maxVal = a[row][col];
maxIndex [1] [2] = a[row][col];
}
}
}
return(maxIndex);
}
首先,当您想要 return maxValue 的索引时,您正在 returning 一个 2d int 数组,这将是一个行索引和一个列索引。也许您想 return 一个大小为 2 的数组来表示这个?更多信息会有所帮助。其次,我不确定您对 maxIndex 二维数组做了什么。每次遍历二维数组时,只需将最大值与当前元素进行比较即可。还没有 IDE 接近调试但应该是这样的:
public static int[] findMaximumIndex(int[ ][ ] a)
{
int maxVal = -99999
int[] answerArray = new int[2];
for(int row = 0; row < a.length; row++)
{
for(int col = 0; col < a[row].length; col++)
{
if(a[row][col] > maxVal)
{
maxVal = a[row][col];
answerArray[0] = row;
answerArray[1] = col;
}
}
}
return answerArray;
}
此处 answerArray[0] 将具有最大元素的行索引,而 answerArray[1] 将具有最大元素的列索引