搜索二维矩阵

搜索二维矩阵

直接用搜索二维矩阵Ⅱ的代码可以直接过掉

cpp 复制代码
class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        int m=matrix.size()-1;
        int n=matrix[0].size()-1;
        int x=0,y=n;
        while(x<=m&&y>=0)//从右上角往左下角搜索,当前值大于目标值 y--,小于目标值则X++;
        {
            if(matrix[x][y]==target)
            {
                return true;
            }
            if(matrix[x][y]>target)
            {
                y--;
            }
            else x++;
        }
        return false;
    }
};

我们再练习一下二分吧在这里:

cpp 复制代码
class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        int hang = -1;
        int n = matrix.size();
        for(int i = 0; i < n; i++) {
            // 判断最后一行或者检查到合适的行
            if (i == n-1 || (matrix[i][0] <= target && matrix[i+1][0] > target)) {
                hang = i;
                break;
            }
        }
        // 如果没找到合适的行,直接返回 false
        if (hang == -1) return false;

        int l=0,r=matrix[0].size()-1;
        while(l<r)
        {
            int mid=(l+r+1)>>1;
            if(matrix[hang][mid]>target) r=mid-1;
            else l=mid;
        }
        if(matrix[hang][r]!=target) return false;
        return true;
        
    }
};

然后就是可以进行数组拼接再二分。

然后就是找合适的行的时候,也可以用二分 时间复杂度就会从O(n)变为O(logn)

相关推荐
葫三生2 分钟前
三生原理与《涌现:从简单规则到复杂世界》在“简单规则生成复杂系统”核心思路上存在理论呼应?
人工智能·科技·算法·机器学习·开源
6Hzlia18 分钟前
【Classic 150 刷题计划】 LeetCode 274. H 指数 | C++ 二分答案法 (单调性降维打击)
c++·算法·leetcode
行者全栈架构师24 分钟前
WorkBuddy 实战:50 份简历 30 分钟筛完,还能自动出评估报告
人工智能·算法·微信
ysu_031443 分钟前
19-插入排序与希尔排序
数据结构·算法·排序算法
零依赖极客1 小时前
Day 9·1 KV 也量化——q8 KV 把缓存与 decode 带宽压到一半
c语言·开发语言·arm开发·人工智能·缓存·矩阵
qq_508576091 小时前
人性机器人部分 算法
算法·机器人
Polevne1 小时前
C# GRPC 一元与双向流
linux·算法·c#
huang5791471 小时前
复杂网络中的最短路径搜索算法性能分析3
算法
找方案1 小时前
AI+气象预报:华为盘古大模型如何让天气预报精准到街区
人工智能·算法·机器学习
Yingye Zhu(HPXXZYY)1 小时前
洛谷B4337 [中山市赛 2023] 简单数学题
c++·算法