美文网首页
01: 二维数组中的查找

01: 二维数组中的查找

作者: iwtbam | 来源:发表于2019-07-30 16:06 被阅读0次

    题目描述

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

    输入描述

    1.png

    解题思路

    • 数组从左到右是递增的,从上到下是递增(或者说从下往上是递减的)。所以我们可以从数组的左下角往右上角搜索,如果该位置元素比目标值,就往右移, 反之上移,直到走数组的右上角位置。从数组的右上角往左下角搜索亦可。

    AC代码

    
    class Solution{
    public:
        bool Find(int target,  vector<vector<int>> matrix){
            size_t row = matrix.size();
            if(row == 0)
                return false;
            size_t col =  matrix[0].size();
            int x = row - 1, y = 0;
            
            while(x >= 0 && x < row && y >= 0 && y < col)
            {
    
                if(matrix[x][y] < target)
                    y += 1;
                else if(matrix[x][y] > target)
                    x -= 1;
                else
                    return true;
               
            }
    
            return false;
        }
    };
    
    

    相关文章

      网友评论

          本文标题:01: 二维数组中的查找

          本文链接:https://www.haomeiwen.com/subject/wjynrctx.html