LeetCode 240 搜索二维矩阵||

1.题目要求:

c 复制代码
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:

每行的元素从左到右升序排列。
每列的元素从上到下升序排列。

实列:

2.各位大佬们,大家好,此题我用的方法是一行一行的找,虽然比较繁琐,但也容易理解:

1.首先我们创建一个能在一行中遍历的函数:

c 复制代码
int search(int* arr,int col,int target)
{
        int left = 0;
        int right = col - 1;
        while(left <= right){
            int mid = (left + right) / 2;
            if(target == arr[mid]){
                return 1;
            }else if(arr[mid] < target){
                left = mid + 1;
            }else{
                right = mid - 1;
            }
        }
        return -1;
}

其实这也相当于二分查找;

2.用循环把每一行的数传入函数中:

c 复制代码
int i = 0;
    int col = *matrixColSize;
    for(i = 0;i < matrixSize;i++){
        int res = search(matrix[i],col,target);
        if(res == 1)
            return true;
    }
    return false;

以下代码块为全部代码:

c 复制代码
int search(int* arr,int col,int target)
{
        int left = 0;
        int right = col - 1;
        while(left <= right){
            int mid = (left + right) / 2;
            if(target == arr[mid]){
                return 1;
            }else if(arr[mid] < target){
                left = mid + 1;
            }else{
                right = mid - 1;
            }
        }
        return -1;
}
bool searchMatrix(int** matrix, int matrixSize, int* matrixColSize, int target){
    int i = 0;
    int col = *matrixColSize;
    for(i = 0;i < matrixSize;i++){
        int res = search(matrix[i],col,target);
        if(res == 1)
            return true;
    }
    return false;
}

好了,这就是我的代码了,大家如果觉得好的话,就给个免费的赞吧,谢谢了^ _ ^

相关推荐
sheji3416几秒前
【开题答辩全过程】以 基于JSP的汽车租赁管理系统为例,包含答辩的问题和答案
java·开发语言·汽车
wen__xvn6 分钟前
C++ 中 std::set 的用法
java·c++·c#
多米Domi0117 分钟前
0x3f 第21天 三更java进阶1-35 hot100普通数组
java·python·算法·leetcode·动态规划
步步为营DotNet16 分钟前
深深度探索.NET 中HttpClient的复用策略:提升性能与稳定性的关键度解析.NET 中IServiceCollection:构建可扩展服务体系的关键
java·网络·.net
AI科技星20 分钟前
统一场论中电场的几何起源:基于立体角变化率的第一性原理推导与验证
服务器·人工智能·线性代数·算法·矩阵·生活
牛马11128 分钟前
WidgetsFlutterBinding.ensureInitialized()在 Flutter Web 端启动流程的影响
java·前端·flutter
宠友信息34 分钟前
面向多端部署的社区平台技术方案:uniapp 与java微服务架构的工程化实践
java·微服务·微信·架构·uni-app·springboot
YanDDDeat1 小时前
Prometheus + Grafana 搭建应用监控体系
java·后端·eureka·grafana·prometheus
诗酒当趁年华1 小时前
Token刷新策略
java