链接: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; } };