Leetcode 240 Search a 2D Matrix II

太逊了

竟然不会

 

 (1,1)最小,(n,n)最大

从左下(n,1)出发,如果当前值比x小,往右走,如果当前值比x大,往上走。由于单调性,所以一次可以抛弃一行或者一列的备选项。

O(n)

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

来源:https://blog.csdn.net/pushup8/article/details/85200248

posted @ 2022-06-17 11:13  *Miracle*  阅读(34)  评论(0编辑  收藏  举报