美文网首页
每日一题——二维数组中的查找

每日一题——二维数组中的查找

作者: 寻玉儿 | 来源:发表于2018-04-17 15:47 被阅读5次

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

    思路:从右上角或左下角开始找,逐行删除

    public class Find {
        public static boolean find(int[][] array, int target) {
            if(array == null) {
                return false;
            }
            int column = array[0].length - 1;
            int row = 0;
            while(row < array.length && column >= 0) {
                if(array[row][column] == target) {
                    return true;
                }
                else if(array[row][column] > target) {
                    column--;
                }
                else {
                    row++;
                }
            }
            
            return false;
        }
        //测试程序
        public static void main(String[] args) {
            int array[][] = new int[4][4];
            //int arrayNull[][] = new int[4][4];
            
            array[0][0]=1;
            array[0][1]=2;
            array[0][2]=8;
            array[0][3]=9;
            array[1][0]=2;
            array[1][1]=4;
            array[1][2]=9;
            array[1][3]=12;
            array[2][0]=4;
            array[2][1]=7;
            array[2][2]=10;
            array[2][3]=13;
            array[3][0]=6;
            array[3][1]=8;
            array[3][2]=11;
            array[3][3]=15;
            System.out.println(find(array, 1));
            System.out.println(find(array, 15));
            System.out.println(find(array, 7));
            System.out.println(find(array, 0));
            System.out.println(find(array, 16));
            System.out.println(find(array, 5));
            //System.out.println(find(arrayNull, 5));
    
        }
    
    }
    

    相关文章

      网友评论

          本文标题:每日一题——二维数组中的查找

          本文链接:https://www.haomeiwen.com/subject/esqpkftx.html