二维数组中的查找

时间限制:1秒 空间限制:32768K 热度指数:32359

本题知识点: 查找

** 算法知识视频讲解

题目描述

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

题解:由于二维数组每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。

所以我们从左下角开始查找,比它大的往右走,比它小的往上走即可

代码如下:

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        int rowsize=array.size();
        int colsize=array[rowsize-1].size();
        for(int i=rowsize-1,j=0;i>=0&&j<colsize;){
            if(target>array[i][j]){
                ++j;
            }else if(target<array[i][j]){
                --i;
                if(i<0)return 0;
                j=0;
                colsize=array[i].size();
            }else{
                return 1;
            }
        }
        return 0;      
    }
};

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦