剑指 Offer ------------ 二维数组中的查找

在这里插入图片描述

题目链接!

思路:
这道题的话,我们可以从题目中约束数组的条件出发,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序,这样我们可以从左上角开始遍历,如果当前元素大于target,那么就把这一列去掉;如果小于则把这一行去掉即可。

代码:


class Solution {
    
    
public:
    bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
    
    
        if(matrix.size()==0) return false;
        int i = 0, j = matrix[0].size()-1;
        while(i <= matrix.size()-1 && j >=0 )
        {
    
    
            if(matrix[i][j] > target) --j;
            else if(matrix[i][j] < target) ++i;
            else return true;
        }
        return false;
    }
};

猜你喜欢

转载自blog.csdn.net/weixin_43743711/article/details/115051121
今日推荐