【问题标题】:Binary search in sorted matrix排序矩阵中的二分搜索
【发布时间】:2020-12-24 00:56:48
【问题描述】:

我试图在 IntelliJ 中实现测试用例; 但是,输出结果是“[I@65b54208”,我不明白为什么这是我的结果,如何将我的结果显示为矩阵中的整数?

public class SearchMatrix {
    public static void main(String[] args) {
        int matrix[][]={{0,1,3},{4,5,6},{7,8,9}};
        SearchMatrix s = new SearchMatrix();
        System.out.println(s.Binary(matrix,3));
    }
    public int[] Binary(int[][] matrix, int target){
        int r= matrix.length;
        int c= matrix[0].length;
        int left=0;
        int right=r*c-1;
        while (left<=right){
            int mid=left+(right-left)/2;
            int row=mid/c;
            int col=mid%c;
            if (matrix[row][col]<target){
                left= mid+1;
            } else if (matrix[row][col]>target){
                right= mid-1;
            } else{
                return new int[] {row,col};
            }
        }
        return new int[] {-1,-1};
    }
}

【问题讨论】:

    标签: java binary-search intellij-15


    【解决方案1】:

    您不能只将数组打印为原始变量。打印数组只会输出数组的哈希码(不是您想要的内容)。通过单独的语句打印每个元素

    int[] result = s.Binary(matrix,3);
    
    System.out.println(result[0]);
    System.out.println(result[1]);
    

    或使用内置函数打印来自java.util.Arraysjavadoc 的数组内容

     System.out.println(Arrays.toString(s.Binary(matrix, 3)));
    

    【讨论】:

      猜你喜欢
      • 2017-08-25
      • 1970-01-01
      • 2011-03-19
      • 2013-01-27
      • 1970-01-01
      • 2015-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多