十七
十七
Published on 2022-02-25 / 202 Visits
0
0

leetcode74. 搜索二维矩阵

leetcode74. 搜索二维矩阵

分析

有题意可知,将矩阵按行排列可化为一个有序数列,可采用二分来寻找目标值,其中中间值的下标为matrix[mid/n][mid%n],n为列数。

class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
            int m=matrix.size(),n=matrix[0].size();
            int l=0,r=m*n-1;
            while(l<=r){
                int mid=(l+r)>>1;
                int x=matrix[mid/n][mid%n];
                if(x<target)l=mid+1;
                else if(x>target)r=mid-1;
                    else return true;
            }
            return false;
    }
};


Comment