根据题解,行依次递增,列依次递增,可以考虑从端点开始遍历,一般考虑左下或右上角开始,(因为左上角开始,数字依次增大,无法处理列变量;右下角同理) alt

    public boolean Find(int target, int [][] array) {
          if(array == null || array.length == 0 || array[0].length == 0){
              return false;
          }
          //从右上角开始
            int row = 0, col = array[0].length -1;
            while(row < array.length && col >= 0){
                if(array[row][col] == target){
                    return true;
                }else if(array[row][col] > target){
                //从右往左遍历
                    col--;
                }else {
                //从上往下遍历
                    row++;
                }
            }
            return false;
        }
}