在java中查找2D数组中每行的最小值索引

时间:2017-02-06 20:33:02

标签: java arrays

我需要在Java中获取2D数组(array [] [])中每行中最小值的索引。我的阵列中有几个漂浮物,我是初学者,所以请不要恨我并帮助我。谢谢!

2 个答案:

答案 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!