当前位置:网站首页>Leetcode74. 搜索二维矩阵
Leetcode74. 搜索二维矩阵
2022-08-01 17:54:00 【Java全栈研发大联盟】
题目传送地址: https://leetcode.cn/problems/search-a-2d-matrix/
运行效率
代码如下:
class Solution {
public static boolean searchMatrix(int[][] matrix, int target) {
int row; //target所在的行
//处理边界情况
if (target > matrix[matrix.length - 1][0]) {
if (target > matrix[matrix.length - 1][matrix[0].length - 1]) {
return false;
} else {
row = matrix.length - 1;
}
}
//先用二分法确定目标值 可能所在的行
int left = 0;
int right = matrix.length;
while (left != right) {
int mid = (left + right) / 2;
if (target == matrix[mid][0]) {
return true;
}
if (target > matrix[mid][0]) {
if(left==mid){
//如果left指针和right指针遇到了就可以跳出循环
break;
}
left = mid;
}
if (target < matrix[mid][0]) {
if(right==mid){
//如果left指针和right指针遇到了就可以跳出循环
break;
}
right = mid;
}
}
row = left;
//再用二分法确定目标值 可能所在的列
left = 0;
right = matrix[0].length;
while (left != right) {
int mid = (left + right) / 2;
if (target == matrix[row][mid]) {
return true;
}
if (target > matrix[row][mid]) {
if(left==mid){
//如果left指针和right指针遇到了就可以跳出循环
break;
}
left = mid;
}
if (target < matrix[row][mid]) {
if(right==mid){
//如果left指针和right指针遇到了就可以跳出循环
break;
}
right = mid;
}
}
return false;
}
}
边栏推荐
猜你喜欢

吴恩达机器学习课后习题——kmeans

opencv语法Mat类型总结
OnePlus 10RT appears on Geekbench, product launch also seems to be approaching

QT常用全局宏定义

OpenCV installation, QT, VS configuration project settings

星途一直缺颠覆性产品?青岛工厂这款M38T,会是个突破点?

SQL窗口函数
一加OnePlus 10RT出现在Geekbench上 产品发布似乎也已临近

Topology Parts Disassembly 3D Visualization Solution

后台管理系统的权限思路
随机推荐
golang json 返回空值
半自动化爬虫-爬取一个网站的内容及回复
关于Mysql服务无法启动的问题
实现mnist手写数字识别
QLineEdit learning and use
百度网盘下载速度提升100倍
银行案例|Zabbix跨版本升级指南,4.2-6.0不香吗?
MySQL 45 讲 | 09 普通索引和唯一索引,应该怎么选择?
OpenCV安装、QT、VS配置项目设置
SQL的ROUND函数用法及其实例
TCP百万并发服务器优化调参
QT基础功能,信号、槽
C language theory--a solid foundation for the written test and interview
QT_QDialog 对话框
ROS2系列知识(5):【参数】如何管理?
使用设备树时对应的驱动编程
关系运算符和if,else语句
SQL函数 TO_CHAR(一)
生物制药产业发展现状和趋势展望
QT_QThread线程