剑指offer_04 二维数组中的查找
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
示例:
现有矩阵 matrix 如下:
[
  [1,   4,  7, 11, 15],
  [2,   5,  8, 12, 19],
  [3,   6,  9, 16, 22],
  [10, 13, 14, 17, 24],
  [18, 21, 23, 26, 30]
]
1 class Solution { 2 public: 3 bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) { 4 // 判断数组不为空 5 if(matrix.size() == 0 || matrix[0].size() == 0) return false; //c++获取数组的长度 用size函数 6 int row = 0; 7 int column = matrix[0].size() - 1; 8 while(row<matrix.size() && column>=0){ 9 // 获取当前元素 10 int num = matrix[row][column]; 11 if(num == target){ 12 return true; 13 }else if(num > target){ 14 column--; 15 }else { 16 row ++; 17 } 18 } 19 return false; 20 } 21 };
 
                     
                    
                 
                    
                 
 
                
            
        