首页 > 其他 > 详细

74. 搜索二维矩阵

时间:2021-06-05 18:28:02      阅读:41      评论:0      收藏:0      [点我收藏+]
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. 搜索二维矩阵

原文:https://www.cnblogs.com/Yshun/p/14852172.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!