输入一个递增的顺序排序的二维数组和一个整数,判断数组中是否含有该整数

解题思路:

 这题的出发点是左下角这个数即a[r][c],和目标数target进行比较,如果比目标数大,则r--,

如果比目标数小,则c++。前提是r >=0并且 c < a[0].length,即数组列的长度。

package bianchengti;
/*
 * 在一个二维数组中,每一行都按照从左到右递增的顺序排序,
 * 每一列都按照从上到下递增的顺序排序。请完成一个函数,
 * 输入这样的一个二维数组和一个整数,判断数组中是否含有该整数
 */
public class DoubleArrayFindValue {
    
    public static boolean getResult(int target, int [][] array) {
        int c=0;
        int r=array.length-1;
               
        while(c <array[0].length && r >= 0){
            if(array[r][c] > target){
                r--;
            }else if(array[r][c] < target){
                c++;
            }else{
                return true;
            }
        }
              
           return false;
    } 
    public static void print(int [][]src) {
          for(int i=0; i<src.length; i++){  
                for(int j=0; j<src[i].length; j++){                        
                    System.out.print(src[i][j]+" ");     
                }  
                System.out.println();           
            }  
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //定义二维数组  
        int [][]a={{1,3,5,6},{7,9,10,12},{15,16,18,20}};  
        print(a);
       System.err.print(getResult(11, a));
    }
}

 

posted @ 2017-09-27 21:38  刘镇平Jasper  阅读(411)  评论(0编辑  收藏  举报