牛客66题(1)二维数组查找

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        int j=0;
       int row=array.size()-1;//行数
        int col=array[0].size()-1;
        if(array.size()!=0)
        {  
         while(row>=0&&j<=col)//搜索终点设置(0,col)
          {
           if (array[row][j]==target)//搜索起点(row,0)
             return true;
           else
             if (array[row][j]>target)
                     --row;
             else ++j;    
          }         
        }
       return false;
        }
};

总结:首先该题二维数组由上到下,由左到右递增状态,要找某个数则考虑从数组的左下角或右上角作为起点,建立循环比较,若比目标值大向小方向搜索,否则向大方向搜索。

流程:(1)求出二维数组的大小

(2)看数组大小代码鲁棒性

(3)设定循环终止条件while循环

(4)循环内部判断与目标值的大小关系

(5)更改搜索方向
--------------------- 
作者:libinxxx 
来源:CSDN 
原文:https://blog.csdn.net/libinxxx/article/details/82666327 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/libinxxx/article/details/84380599