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]240. Search a 2D Matrix II