当前位置: 首页 > article >正文

2025年- H61-Lc169--74.搜索二维矩阵(二分查找)--Java版

1.题目描述

在这里插入图片描述
在这里插入图片描述

2.思路

方法一:
定义其实坐标,右上角的元素(0,n-1)。进入while循环(注意边界条件,行数小于m,列数要>=0)从右上角开始开始向左遍历(比当前元素target小的元素),向下遍历(比当前元素target大的元素),如果while循环结束都没找到,返回false。
方法二:二分查找
若将矩阵每一行拼接在上一行的末尾,则会得到一个升序数组,我们可以在该数组上二分找到目标元素。可以二分升序数组的下标,将其映射到原矩阵的行和列上。
row = mid / 列数,表示这是第几行;
col = mid % 列数,表示这是该行中的第几个元素。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.代码实现

方法一:

class Solution {public boolean searchMatrix(int[][] matrix, int target) {int m = matrix.length;int n = matrix[0].length;int row = 0;int col = n - 1; // 从右上角开始while (row < m && col >= 0) {if (matrix[row][col] == target) {return true;} else if (matrix[row][col] > target) {col--; // 往左走} else {row++; // 往下走}}return false;}
}

方法二:

public class H74 {public boolean searchMatrix(int[][] matrix, int target) {//二维矩阵“虚拟成一维数组”进行二分查找//行数int m= matrix.length;//列数int n=matrix[0].length;//将矩阵展平成一维数组的容量int left=0;int right=m*n-1;while(left<=right){int mid=left+(right-left)/2;//防止整数溢出//将二维矩阵映射成一维数组//当前mid索引对应在矩阵的位置:当前元素的行数=mid/列数. // 将一维下标映射回二维坐标int row=mid/n;//当前元素的列数=mid/列数int col=mid%n;if(matrix[row][col]==target){return true;}else if(target>matrix[row][col]){left=mid+1;}else {right=mid-1;}}return false;}public static void main(String[] args){H74 ms=new H74();int[][] matrix={{1,3,5,7},{10,11,16,20},{23,30,34,60}};int target=11;Boolean res=ms.searchMatrix(matrix,target);System.out.print(res);}
}
http://www.lryc.cn/news/2399376.html

相关文章:

  • 微服务商城-用户微服务
  • 数学复习笔记 26
  • 创建型-设计模式
  • 移动AI神器GPT Mobile:多模型自由切换
  • 【黄金评论】美元走强压制金价:基于NLP政策因子与ARIMA-GARCH的联动效应解析
  • ubutu修改网关
  • Flink进阶之路:解锁大数据处理新境界
  • 【论文阅读】Dolphin: Document Image Parsing via Heterogeneous Anchor Prompting
  • 谷歌地图免费下载手机版
  • DeepSeek 赋能金融衍生品:定价与风险管理的智能革命
  • SpringBoot-15-多表查询之多对多查询可选中间表
  • 论文中pdf图片文件太大怎么办
  • 简单爬虫框架实现
  • MVCC理解
  • 705SJBH超市库存管理系统文献综述
  • shell:基础
  • 【JVM】万字总结GC垃圾回收
  • 内网横向之RDP缓存利用
  • 【Linux网络】传输层TCP协议
  • 不同视角理解三维旋转
  • Adobe Acrobat——设置PDF打印页面的大小
  • Android apk装机编译类型: verify、speed-profile, speed与启动耗时
  • 纹理压缩格式优化
  • 使用Virtual Serial Port Driver+com2tcp(tcp2com)进行两台电脑的串口通讯
  • 【从0-1的HTML】第3篇:html引入css的3种方式
  • 数智破局·生态共生:重构全球制造新引擎 2025 WOD制造业数字化博览会即将在沪盛大启幕
  • machine_env_loader must have been assigned before creating ssh child instance
  • BGP/MPLS IP VPN跨域解决方案
  • C语言-10.字符串
  • backend 服务尝试连接 qdrant 容器,但失败了,返回 502 Bad Gateway 问题排查