二维数组中的查找

代码如下:

public class Demo1 {
    public static void main(String[] args) {
        int [][] arr=new int[][]{{1,2,8,9},
                                 {2,4,9,12},
                                 {4,7,10,13},
                                 {6,8,11,15}};
        int a=12;
        System.out.println(Demo1.find(arr,a));
    }
    public static boolean find(int[][] arr,int number){
        boolean flag =false;
        int rows=arr[0].length;//行数
        int columns=arr.length;//列数
        if( rows>0 && columns>0){
           int row=0;
           int column = columns - 1;
           while( row >=0 && row < rows && column >= 0 ){
                //如果比number小,则说明不在这一行,让行数+1
                if ( arr[row][column] < number ){
                    ++row;
                }
                //如果比number大,则说明不在这一列,让列数-1
                else if (arr[row][column] > number){
                    --column;
                }else 
                    return true;
            }
        }
        return  flag;
    }

解析图如下:

猜你喜欢

转载自www.cnblogs.com/liujunj/p/8988456.html