74. 搜索二维矩阵

74. 搜索二维矩阵

已解答

中等

相关标签

相关企业

给你一个满足下述两条属性的 m x n 整数矩阵:

  • 每行中的整数从左到右按非严格递增顺序排列。
  • 每行的第一个整数大于前一行的最后一个整数。

给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false

示例 1:

复制代码
输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
输出:true

示例 2:

复制代码
输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13
输出:false

提示:

  • m == matrix.length
  • n == matrix[i].length
  • 1 <= m, n <= 100
  • -104 <= matrix[i][j], target <= 104
cpp 复制代码
class Solution {
public:
    int row, col, len;

    bool bSearch(vector<vector<int>>& matrix, int target, int start, int end){
        if(end - start <= 1){
            return matrix[start / col][start % col] == target;
        }
        int mid = (start + end) / 2;
        if(matrix[mid /col][mid % col] > target){
            return bSearch(matrix, target, start, mid);
        }
        else{
            return bSearch(matrix, target, mid, end);
        }
    }


    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        row = matrix.size();
        col = matrix[0].size();
        len = row * col;
        return bSearch(matrix, target, 0, len);
    }
};
相关推荐
leiming619 小时前
C++ vector容器
开发语言·c++·算法
Xの哲學20 小时前
Linux流量控制: 内核队列的深度剖析
linux·服务器·算法·架构·边缘计算
yaoh.wang20 小时前
力扣(LeetCode) 88: 合并两个有序数组 - 解法思路
python·程序人生·算法·leetcode·面试·职场和发展·双指针
LYFlied21 小时前
【每日算法】 LeetCode 56. 合并区间
前端·算法·leetcode·面试·职场和发展
艾醒21 小时前
大模型原理剖析——多头潜在注意力 (MLA) 详解
算法
艾醒21 小时前
大模型原理剖析——DeepSeek-V3深度解析:671B参数MoE大模型的技术突破与实践
算法
jifengzhiling1 天前
零极点对消:原理、作用与风险
人工智能·算法
鲨莎分不晴1 天前
【前沿技术】Offline RL 全解:当强化学习失去“试错”的权利
人工智能·算法·机器学习
XFF不秃头1 天前
力扣刷题笔记-全排列
c++·笔记·算法·leetcode