首页 > 技术文章 > Leetcode 74

cunyusup 2018-10-27 23:34 原文

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

 

推荐阅读