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

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

相关文章:

  • 【技能拾遗】——家庭宽带单线复用布线与配置(移动2025版)
  • 计算机视觉与深度学习 | 基于Matlab的门禁指纹识别与人脸识别双系统实现
  • 关于TongWeb数据源兼容mysql驱动的注意事项
  • CSS专题之层叠上下文
  • 【前端】SPA v.s. MPA
  • vue3 基本语法 父子关系
  • 设计模式——装饰器设计模式(结构型)
  • HiveSQL语法全解析与实战指南
  • 【大模型部署】mac m1本地部署 ChatGLM3-6B 超详细教程
  • 跟单业务和量化交易业务所涉及到的设计模式
  • 性能优化 - 理论篇:性能优化的七类技术手段
  • C++旅行预算规划 全国信息素养大赛复赛决赛 C++小学/初中组 算法创意实践挑战赛 内部集训模拟题详细解析
  • C++ - STL #什么是STL #STL的版本 #闭源开源 #STL的六大组件
  • 题解:洛谷 P12672 「LAOI-8」近期我们注意到有网站混淆视听
  • Wireshark 使用教程:让抓包不再神秘
  • DeepSeek-R1-0528,官方的端午节特别献礼
  • Go语言中的布尔类型详解
  • 【算法】贪心算法
  • 深拷贝和浅拷贝
  • C++ list数据删除、list数据访问、list反转链表、list数据排序
  • b2b代表网站/app拉新推广代理平台
  • 如何做图片 网站 链接/百度词条
  • wordpress后台轮播图/宁波seo网络推广主要作用
  • 网站建设的最终目标/培训加盟
  • 浏览器怎么打开网站服务器设置/昆山网站建设推广
  • 网站制作怎么做网站优化排名/网络营销教程