leetcode ---Search a 2D Matrix

Posted CR2014

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.

package leetcode;

public class SearchA2DMatrix {
//数组查找:1、排好序(二分查找的前提)2、二分查找!
public static boolean searchMatrix(int[][] matrix, int target) {
      int m =0;
    while(m<=matrix.length-1){
        if(matrix[m][0]<=target&&matrix[m][matrix[0].length-1]>=target){
             return binary(matrix[m],0,matrix[0].length-1,target);            
        }else
            m++;            
    }  
    return false;
    }

public static boolean binary(int nums[] , int left,int right,int tar ){     //二分查找的一般算法
    while(right>=left){
    int mid = (right+left)/2;
    if(nums[mid] == tar)  return true;
    if(nums[mid] >tar) return binary(nums,left,mid-1,tar);
    return binary(nums,mid+1,right,tar);
    }
    return false;
}

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        int[][] a ={
          {1,   3,  5,  7},
          {10, 11, 16, 20},
          {23, 30, 34, 50}
          };
    System.out.print(searchMatrix(a,9));
    }

}

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

leetcode : Search a 2D Matrix

[LeetCode] Search a 2D Matrix

[leetcode]240. Search a 2D Matrix II

LeetCode 240. Search a 2D Matrix II

[LeetCode] Search a 2D Matrix

LeetCode 74:Search a 2D Matrix