码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-07-30 21:12:29      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:turn   维数   判断   输入   []   text   highlight   boolean   java   

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-特定二维数组中查找一个元素是否存在-二分搜索-二维数组

标签:turn   维数   判断   输入   []   text   highlight   boolean   java   

原文地址:http://www.cnblogs.com/cs-lcy/p/7260231.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!