剑指OFFER----面试题04.二维数组中的查找

链接:https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/

 

思路:

  因为matrix是从左到右从上到下递增的,因此我们从matrix右上角的数字开始遍历,如果target大于它,则向下走一行,若target小于它,则向左走一格,若相等则返回true,否则返回false。

代码:

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

 

posted @ 2020-02-14 16:32  景云ⁿ  阅读(127)  评论(0编辑  收藏  举报