剑指Offer(第二版)04

Posted on 2022-11-24 21:20  梦中千秋  阅读(16)  评论(0编辑  收藏  举报

题目

/**

  • @Author Tiam
  • @Date 2021/12/22 13:51
  • @Description: 二维数组中的查找.
  • 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,
  • 每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,
  • 输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
  • 0 <= n <= 1000
  • 0 <= m <= 1000
    */

码子

public boolean findNumberIn2DArray1(int[][] matrix, int target) {
        //高
        int n = matrix.length;
        //宽
        int m = n == 0 ? 0 : matrix[0].length;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
            		//遍历每一行,因递增排序,遍历到比target大的时候,后续便没必要继续遍历了直接跳出.
                if (matrix[i][j] > target) {
                    break;
                }
                if (matrix[i][j] == target) {
                    return true;
                }
            }
        }
        return false;
    }