二维数组中的查找
题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 法一:两个for循环,o(n^2),直接查找。代码如下: 1 public boolean Find(int target, int[][] array) { 2 boolean flag = false; 3 for(int i = 0; i < array.length; i++) { 4 for(int j = 0; j < array[i].length; j++) { 5 if(target == array[i][j]) { 6 flag = true; 7 break; 8 } 9 } 10 } 11 return flag; 12 } View Code 法二:外层for循环,内层二分,o(nlogn)。代码如下: 1 public boolean Find(int target, int[][] array) { 2 if(array.length == 0 || array[0].length == 0) { 3 return false; 4 } 5 boolean flag = false; 6 int left, right, mid, len = array.length; 7