当前位置:   article > 正文

LeetCode刷题 面试题04.二维数组中的查找_在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增

题目要求:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

分析:查找问题,有特点是每一行都按照从左到右递增,每一列都按照从上到下递增,利用这个特性,可以从右上角开始查找,直到左下角。

  1. bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
  2. if(matrix.empty())
  3. return false;
  4. int rows = matrix.size();
  5. int cols = matrix[0].size();
  6. int i = 0;
  7. int j = cols - 1;
  8. while(i < rows && j >= 0) {
  9. if(matrix[i][j] == target)
  10. return true;
  11. else if(matrix[i][j] < target)
  12. i++;
  13. else {
  14. j--;
  15. }
  16. }
  17. return false;
  18. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/366026
推荐阅读
相关标签
  

闽ICP备14008679号