2019-05-03

题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每 一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数, 判断数组中是否含有该整数。


利用每一行从左到右递增排序,每一列从上到下递增排序,可以用该值先与右上角比较,若大于就行加一,若小于就列减一。

   public static boolean findNum(int[][] a, int num) {
        boolean flag = false;
        for (int i = 0, j = a[i].length - 1; i < a.length && j > 0; ) {

            if (a[i][j] > num) {
                j++;
            } else if (a[i][j] < num) {
                i++;
            } else {
                flag = true;
                break;
            }
        }

        return flag;
    }
}

你可能感兴趣的:(2019-05-03)