剑指Offer(Java)-1-二维数组中的查找

Posted 一条咸狗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指Offer(Java)-1-二维数组中的查找相关的知识,希望对你有一定的参考价值。

public static boolean Find(int target, int [][] array) {
	    	
	        if(array==null||array[0].length==0){
	            return false;//数组非空判断
	        }
	        if (array[0][0]> target) {
             return false;
         } 
       int a=array.length;
       int b=array[0].length;
       int c=0;//从第一行最后一个元素开始作比较
       while(true){
    //按二维数组右上角做二分
           if(array[c][b-1]==target){
               return true;
           }
           else if(array[c][b-1]>target){
    //最右上角的值大于目标值,则不比较最后一列的其他值
                b=b-1;
               if(b-1<0){
                   break;
               }
           }
           else if(array[c][b-1]<target){
   //最右上角的值小于目标值,则不比较第一行的值,
                  c=c+1; 
               if(c==a){
                   break;
               }
           }
       }

       return false;
	    } 
	}        

  

以上是关于剑指Offer(Java)-1-二维数组中的查找的主要内容,如果未能解决你的问题,请参考以下文章

剑指Offer(Java)-1-二维数组中的查找

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

剑指offer:2.二维数组的查找(Java版)

剑指 Offer——1. 二维数组中的查找

《剑指Offer 1.二维数组中的查找》2019-03-25

剑指offer04二维数组中的查找