C++零基础算法100题-搜索二维矩阵 II

46 阅读1分钟

题目链接: 240. 搜索二维矩阵 II - 力扣(LeetCode)

题目描述

image.png

解体思路

  1. 首先我们进来了一个二维数组
  2. 二维数组我们对每一层我们进行二分查找
  3. 找到每一层的第一个元素下标和最后一个元素下标
  4. 每一层进行二分搜索 找到了返回true
  5. 没找到返回false

解体步骤

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