74. 搜索二维矩阵

Posted 五月的海湾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了74. 搜索二维矩阵相关的知识,希望对你有一定的参考价值。

package leetcode;

public class demo_74 {
    public boolean searchMatrix(int[][] matrix, int target) {
        //如果目标值大于数组最大值或小于数组最小值,则不存在
        if(matrix[0][0]>target||matrix[matrix.length-1][matrix[0].length-1]<target) {return false;}
        int i;
        //找出目标值可能存在的行数
        for(i=0;i<matrix.length;i++) {
            if(matrix[i][matrix[0].length-1]>=target) {break;}
        }
        //如果当前行的最小值大于目标值,则不存在
        if(matrix[i][0]>target) {return false;}
        int left=0;
        int right=matrix[0].length-1;
        int mid;
        //二分法查找所在行可能的列数
        while(left<=right) {
            mid=(left+right)/2;
            if(matrix[i][mid]==target) {return true;}
            if(matrix[i][mid]>target) {right=mid-1;}
            if(matrix[i][mid]<target) {left=mid+1;}
        }
        return false;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        demo_74 d74=new demo_74();
        int[][] matrix= {{1,3,5,7},{11,13,16,20},{23,34,36,60}};
        System.out.println(d74.searchMatrix(matrix, 3));
    }

}

 

以上是关于74. 搜索二维矩阵的主要内容,如果未能解决你的问题,请参考以下文章

[leetcode] 74. 搜索二维矩阵

LeetCode74. 搜索二维矩阵

[JavaScript 刷题] 二分搜索 - 搜索二维矩阵, leetcode 74

[JavaScript 刷题] 二分搜索 - 搜索二维矩阵, leetcode 74

74. 搜索二维矩阵

Leetcode 74.搜索二维矩阵