刷题笔记(一)——二维数组中的查找

刷题笔记(一)——二维数组中的查找

题目

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

思路

数组 横向递增、纵向递增

数组左下角的数大于所在列上的数小于所在行的数

所以从左下角开始进行查找,若target小于该数则沿所在列向上查找;若target大于该数则沿改行向右查找

代码

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        int row_size=array.size();
        int col_size=array[0].size();
        //从左下角开始
        for(int i=row_size-1,j=0;i>=0&&j<col_size;)
        {
            if(target==array[i][j])
                return true;
             else if(target<array[i][j])//小于,则往上找
             { 
                 i--;
                 continue;
             }
            else//大于则向右找
            {
                j++;
                continue;
            }
         }
          return false;          
    }
};
发布了36 篇原创文章 · 获赞 19 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/GJ_007/article/details/105057770