查找二维数组中是否存在目标值

谁说胖子不能爱 提交于 2020-03-04 19:50:48

在一个二维数组中,该数组满足所有行从左至右递增,所有列满足从上到下递增。给定一目标值Target,若数组中存在该值,则返回true,否则返回false。

分析:
数字所有行从左到右递增,所有行从上到下递增,则每次将目标值与数组右上角的值进行比较,若相等则返回True,若小于该值,则到下一行,若大于该值,则到前一列。

代码如下:

class Solution
{
   public:
      bool findNumber(vector<vector<int>>& matrix,int target)
      {
         if(matrix.empty()) return false;
         int height=matrix.size()-1;
         int width=matrix[0].size()-1;
         int h=0;
         while(h<=height && width>=0)
         {
           if(matrix[h][width]==target) return true;
           else if(matrix[h][width]< target) h++;
           else width--;
         }
         return false;
       }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!