LeetCode 240 Search a 2D Matrix II

187 阅读1分钟

LeetCode 240 Search a 2D Matrix II

思路

从矩阵的右上角开始,往左可视为BST的左子树,往右可视为BST的右子树。复杂度为O(n)

代码

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