LeetCode-Search a 2D Matrix

Posted IncredibleThings

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode-Search a 2D Matrix相关的知识,希望对你有一定的参考价值。

Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:

Integers in each row are sorted from left to right.
The first integer of each row is greater than the last integer of the previous row.
For example,

Consider the following matrix:

[
  [1,   3,  5,  7],
  [10, 11, 16, 20],
  [23, 30, 34, 50]
]
Given target = 3, return true.

 

 

 

 

public class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        boolean found=false;
        if(matrix==null){
            return found;
        }
        int m=matrix.length;
        int n=matrix[0].length;
        
        int upRow=0;
        int downRow=m-1;
        
        while(upRow<=downRow){
            if(target<=matrix[upRow][n-1]){
                found=binarySearch(matrix, upRow, target);
                break;
            }
            else if(target>=matrix[downRow][0]){
                found=binarySearch(matrix, downRow, target);
                break;
            }
            else{
                upRow++;
                downRow--;
            }
        }
        return found;
    }
    
    public boolean binarySearch(int[][]matrix, int row, int target){
        int m=matrix.length;
        int n=matrix[0].length;
        
        int left=0;
        int right=n-1;
        
        boolean found=false;
        while(left<=right){
            int mid=left+(right-left)/2;
            if(matrix[row][mid]==target){
                found=true;
                break;
            }
            else if(matrix[row][mid]<target){
                left=mid+1;
            }
            else{
                right=mid-1;
            }
        }
        return found;
    }
}

 

以上是关于LeetCode-Search a 2D Matrix的主要内容,如果未能解决你的问题,请参考以下文章

leetcode-Search a 2D Matrix II-240

74. Search a 2D Matrix

LeetCode-Search in Rotated Sorted Array II

leetCode-Search Insert Position

LeetCode-Search in Rotated Sorted Array

leetcode-Search in Rotated Sorted Array II-81