欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 明星 > LeetCode 240 搜索二维矩阵||

LeetCode 240 搜索二维矩阵||

2025/6/6 15:47:08 来源:https://blog.csdn.net/m0_54244065/article/details/140411478  浏览:    关键词:LeetCode 240 搜索二维矩阵||

1.题目要求:

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。
每列的元素从上到下升序排列。

实列:
在这里插入图片描述

在这里插入图片描述
2.各位大佬们,大家好,此题我用的方法是一行一行的找,虽然比较繁琐,但也容易理解:
1.首先我们创建一个能在一行中遍历的函数:

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.用循环把每一行的数传入函数中:

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;

以下代码块为全部代码:

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

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词