首页 > 其他 > 详细

leetcode ---Search a 2D Matrix

时间:2016-03-18 07:02:20      阅读:118      评论:0      收藏:0      [点我收藏+]

题目:

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

原文:http://www.cnblogs.com/neversayno/p/5290230.html

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