我需要在Java中获取2D数组(array [] [])中每行中最小值的索引。我的阵列中有几个漂浮物,我是初学者,所以请不要恨我并帮助我。谢谢!
答案 0 :(得分:0)
void findMinimumIndex( float[][] data )
{
int x = 0 , y = 0;
float assumedMin = 0.0f;
int lastSmallestXIndex , lastSmallestYIndex;
ArrayList<Integer> minIndexListInRows = new ArrayList<>();
for( x = 0; x < data.length; x++ )
{
for( y = 1 , assumedMin = data[x][y - 1]; y < data[x].length; y++ )
{
if( assumedMin < data[x][y] )
{
assumedMin = data[x][y];
lastSmallestXIndex = x;
lastSmallestYIndex = y;
}
}
System.out.println("In (" + x + "," + y + "), smallest float is: " + assumedMin + ", At: {" + lastSmallestXIndex + "," + lastSmallestYIndex + "}");
}
}
minIndexListInRows,你可以将你的技巧应用到至少扮演你的角色,这个代码区域是你的吸烟枪;
for( y = 1 , assumedMin = data[x][y - 1]; y < data[x].length; y++ )
{
if( assumedMin < data[x][y] )
{
assumedMin = data[x][y];
lastSmallestXIndex = x;
lastSmallestYIndex = y;
}
}
答案 1 :(得分:0)
您可以使用辅助方法rowMinsIndex
,在这里传入二维数组,如下所示:
import java.util.Arrays;
class Main {
public static void main(String[] args) {
int[][] twoDimensionalArray = new int[][]{
{ 1, 2, 5 },
{ 4, 3, 6 },
{ 7, 5, 9 }
};
System.out.println("The twoDimensionalArray is: " + Arrays.deepToString(twoDimensionalArray));
int[] minsOfEachRow = rowMinsIndex(twoDimensionalArray);
for(int i = 0; i < minsOfEachRow.length; i++) {
System.out.println("The index of the minimum of row " + i + " is: " + minsOfEachRow[i]);
}
}
public static int[] rowMinsIndex(int[][] nums) {
int [] count = new int [nums.length];
int [] minIndexes = new int [nums.length];
Arrays.fill(count, Integer.MAX_VALUE);
for(int i = 0; i < count.length; i++){
for(int x = 0; x < nums[0].length; x++){
if(nums[i][x] < count[i]){
count[i] = nums[i][x];
minIndexes[i] = x;
}
}
}
return minIndexes;
}
}
<强>输出继电器:强>
The twoDimensionalArray is: [[1, 2, 5], [4, 3, 6], [7, 5, 9]]
The index of the minimum of row 0 is: 0
The index of the minimum of row 1 is: 1
The index of the minimum of row 2 is: 1
试试here!