news 2026/1/2 10:17:17

hot100-51搜索二维矩阵

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
hot100-51搜索二维矩阵

一、题目

m×n的矩阵,每行中的整数从左到右递增排列,每行第一个整数大于前一行的最后一个整数。

给定矩阵和target,如果target在矩阵中,返回true,否则返回false。

二、思路

1、这个题目和 搜索二维矩阵 II 做法可以相同,从右上角开始搜索。如果当前值大于 target→ 向左走(排除这一列);如果当前值小于 target→ 向下走(排除这一行);如果相等 → 找到了!

2、这个题目的特性是,每行的第一个元素 > 上一行的最后一个怨怒是,说明所有行是严格递增拼接的,使用上面的解法时间复杂度是O(m+n),如果使用二分查找时间复杂度是O(log(mn))。

展开为一个一维数组,总长度m x n,在[0,N-1]范围内进行二分查找。对于任意一维索引mid,转换为二维坐标,行号:row=mid/n,列号:col=mid%n。比较matrix[m][n]与target,调整左右边界。

int row = mid / n; // 整除 → 得到“完整行数”

int col = mid % n; // 取余 → 得到“在该行中的偏移”

三、代码

class Solution { public boolean searchMatrix(int[][] matrix, int target) { int m = matrix.length-1,n = matrix[0].length-1; int row = 0, col = n; while(row <= m && col >= 0){ if(matrix[row][col] == target){ return true; }else if(matrix[row][col] > target){ col--; }else{ row++; } } return false; } }

做法二

class Solution { public boolean searchMatrix(int[][] matrix, int target) { int m = matrix.length,n = matrix[0].length; int left=0,right = m*n -1; while(left <= right){ int mid = left + (right - left) /2; int row = mid / n; int col = mid % n; if(matrix[row][col] == target){ return true; }else if(matrix[row][col] < target){ left = mid + 1; }else{ right = mid - 1; } } return false; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/26 6:27:23

AGAT基因组注释工具:从入门到精通的完整指南

你是否在处理基因组注释文件时感到困惑&#xff1f;面对各种GFF/GTF格式的变体不知从何下手&#xff1f;AGAT&#xff08;Another Gtf/Gff Analysis Toolkit&#xff09;正是为你量身定制的解决方案&#xff01;这款强大的工具能够帮助你轻松应对各种基因组注释处理的挑战。 【…

作者头像 李华
网站建设 2025/12/31 11:10:08

LGTV Companion完整指南:让LG电视与电脑智能联动的终极方案

LGTV Companion完整指南&#xff1a;让LG电视与电脑智能联动的终极方案 【免费下载链接】LGTVCompanion Power On and Off WebOS LG TVs together with your PC 项目地址: https://gitcode.com/gh_mirrors/lg/LGTVCompanion LGTV Companion是一款专为LG WebOS电视设计的…

作者头像 李华
网站建设 2025/12/26 6:26:45

终极音乐神器:EeveeSpotify免费解锁Spotify高级功能完整指南

你是否曾经因为Spotify的广告打断而烦躁&#xff1f;是否渴望能够自由控制播放顺序&#xff0c;而不是被随机播放束缚&#xff1f;现在&#xff0c;EeveeSpotify这款音乐神器为你提供了完美的免费解决方案。这个开源项目专门为iOS越狱设备设计&#xff0c;让你无需支付任何费用…

作者头像 李华
网站建设 2026/1/1 22:34:17

PaddlePaddle开源框架实测:中文NLP任务的最佳实践指南

PaddlePaddle开源框架实测&#xff1a;中文NLP任务的最佳实践指南 在中文自然语言处理的战场上&#xff0c;开发者常常面临一个尴尬局面&#xff1a;国际主流框架虽强&#xff0c;但在处理“北京故宫”到底是地名还是景点、“他打球很好”和“他打老婆很好”这种语义鸿沟时&am…

作者头像 李华
网站建设 2025/12/26 6:26:02

23、超越搜索:网络交互探索研究

超越搜索:网络交互探索研究 1. 动机与超越搜索的思考 动机本身可能会扭曲解释某些行为的复杂原因集合,毕竟并非所有行为都带有明确动机。当我们探索超越搜索的可能性时,需要考虑两方面:一是如何满足已确定的动机;二是如何从人性的更广泛范畴中设计出培养新动机的工具。此…

作者头像 李华
网站建设 2025/12/26 6:25:56

突破Cursor编辑器限制:一键重置工具让AI编程重获新生

突破Cursor编辑器限制&#xff1a;一键重置工具让AI编程重获新生 【免费下载链接】go-cursor-help 解决Cursor在免费订阅期间出现以下提示的问题: Youve reached your trial request limit. / Too many free trial accounts used on this machine. Please upgrade to pro. We h…

作者头像 李华