在2d数组的每一行中找到最小值



我目前正在学习,遇到一个问题,要求在二维数组的每一行中找到最小值,然后将所有的最小值放在数组中。我已经写了一些代码,但是这个方法在控制台中产生了一个非常奇怪的输出,而不是正确的结果。

我在这个2d数组上测试了它 int[][]数组= {8}{3 1,2}{10, 12日,{5、7、4}};,我应该得到的输出是[1,2,4],但我得到的却是[I@7852e922

谁能告诉我我做错了什么?

代码如下:

  public static int [] min_row(int[][] n){
  int [] result = new int[n.length];
  int min=0;

  for(int i=0;i<n.length;i++){

       for(int j=0;j<n[0].length;j++){
           if(n[i][j]<n[i][min]){
               min=j;
           }
           result[i]=n[i][min];
       } 

  }
  return result;
  }

我怀疑您正在打印数组对象本身(请注意,这里最好提供您的整个代码,因为您的代码的其他部分与此问题相关)。我不得不猜)即

int[] result = min_row(someArray);
System.out.println(result);

你不能这样做,你需要使用一个循环打印出每个元素,例如:

for(int i=0; i<result.length;i++)
   System.out.println(result[i]);

 public static int [] min_row(int[][] n){
  int [] result = new int[n.length];
  for(int i=0;i<n.length;i++){
       int min = Integer.MAX_VALUE;  //initial min with MAX int value
       for(int j=0;j<n[i].length;j++){
           if(min > n[i][j])    // if element smaller than min  
           {
               min= n[i][j];    //assign a new min value
           }
          
       } 
       result[i]= min;          //save the min for the row
  }
  return result;
  }

相关内容

  • 没有找到相关文章

最新更新