题解 | #二维数组中的查找#

二维数组中的查找

https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param target int整型 
     * @param array int整型vector<vector<>> 
     * @return bool布尔型
     */
  //根据数组的大小顺序,先从左下角开始查找,如果大于target,就往当前元素右边找,如果小于target,就往当前元素左边找,这样就没必要遍历完整个容器,节省时间
    bool Find(int target, vector<vector<int> >& array) {
        int n = array.size() -1; // 这里,我学到了二维容器,如何求行和列的长度
        int m = array[0].size() -1;
        int i = n; int j = 0;
        while(i <= n &&  i >= 0 && j >= 0 && j <= m)
        {
            if(array[i][j] < target) j++;        //小于target,左边找
            else if(array[i][j] > target) i--;   //大于target,右边找
            else return target;
        }
        return false;
    }
};

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务