剑指 offer第四题,二维数组的查找

    xiaoxiao2022-07-14  154

    给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。思路:从右上角开始找,小的数在左边,大的数在右边。右上角是matrix[0][length-1]。 public boolean Find(int target, int [][] array) { if(array == null || array.length==0 || array[0].length==0) return false; int rows=array.length,cols=array[0].length; int r=0,c = cols-1;//从右上角开始 while(r<rows-1&&c>=0){ if(target==array[r][c]){ return true; }else if(target>array[r][c]){ r++; }else{ c--; } } return false; }``` 第一个问题,array==null,少打了=,还有==之间有空格。 第二个问题,for循环内,r没有小于等于rows-1,直接写打小于,这样少了一行比较。
    最新回复(0)