剑指offer-特定二维数组中查找一个元素是否存在-二分搜索-二维数组

int [][] array ={
{1,2,8,9},
{2,4,9,12},
{4,7,10,13},
{6,8,11,19}
};

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

剑指offer-特定二维数组中查找一个元素是否存在-二分搜索-二维数组

public class Solution {
public static boolean Find(int target, int [][] array) {
int M = array.length;
int N = array[0].length;
int i=M-1,j=0;
while(i>=0 && j<N){ if(target == array[i][j])
return true; if(target< array[i][j])
{i--;continue;} if(target> array[i][j])
{j++;continue;} }
return false;
} public static void main(String[] args){
int [][] array ={
{1,2,8,9},
{2,4,9,12},
{4,7,10,13},
{6,8,11,19} };
System.out.println(Find(-1,array));
}
}

  剑指offer-特定二维数组中查找一个元素是否存在-二分搜索-二维数组

暴力解法也通过了,但是这个时间复杂度为n方 , 上面的那个时间复杂度

剑指offer-特定二维数组中查找一个元素是否存在-二分搜索-二维数组

*****************************************************************************

错误解法

剑指offer-特定二维数组中查找一个元素是否存在-二分搜索-二维数组

上一篇:转:IIS 应用程序池 内存 自动回收


下一篇:高难度(1)常用的AR构架或库