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

Posted 多情剑客无情剑;

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer-特定二维数组中查找一个元素是否存在-二分搜索-二维数组相关的知识,希望对你有一定的参考价值。

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

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

 

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));
    }
}

  

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

 

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

错误解法

 

以上是关于剑指offer-特定二维数组中查找一个元素是否存在-二分搜索-二维数组的主要内容,如果未能解决你的问题,请参考以下文章

《剑指Offer》二维数组中的查找

二维数组的查找——剑指offer第一题

剑指offer二维数组中的查找

剑指Offer编程题(Java实现)——二维数组中的查找

剑指offer经典题目一:二维数组中的查找

剑指 offer 第一题: 二维数组中的查找