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;
}

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

相关推荐
ForgeAI码匠10 小时前
ForgeAdmin|Spring Boot 3 后台框架的自动配置设计:少写配置,多做组合
java·spring boot·后端
tongluowan00711 小时前
Redisson的参数及工作原理
java·redis·lua·分布式锁
有为少年11 小时前
深度隐式层 | 隐式函数与自动微分
人工智能·神经网络·线性代数·机器学习·矩阵
洛水水11 小时前
【力扣100题】53.最长回文子串
算法·leetcode·职场和发展
仙俊红11 小时前
Integer\int对比,equals()\hashcode面试
java·面试·职场和发展
WiChP11 小时前
【V0.1B10】从零开始的2D游戏引擎开发之路
java·数据库·游戏引擎
云烟成雨TD12 小时前
Spring AI Alibaba 1.x 系列【60】检查点机制原理与全流程剖析
java·人工智能·spring
ForgeAI码匠12 小时前
Maven 多模块项目如何避免越写越乱?Forge Admin 的模块边界实践
java·人工智能·开源·maven
z落落12 小时前
C# 数组 最终完整版全套笔记(一维+多维+交错+引用类型+对象数组)
java·笔记·c#
Access开发易登软件12 小时前
Access 和 SQLite,根本不在一个赛道上
java·jvm·数据库·sqlite·excel·vba·access开发