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

邢台市建设局安全监督管理网站推广引流工具

邢台市建设局安全监督管理网站,推广引流工具,镇江公司做网站,闵行区网站建设💻 [LeetCode Hot100] 搜索二维矩阵 II🔥二分查找 vs 线性搜索,Java实现,图解代码 ✏️本文对应题目链接:搜索二维矩阵 II 📌 题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 targ…

💻 [LeetCode Hot100] 搜索二维矩阵 II🔥二分查找 vs 线性搜索,Java实现,图解+代码

✏️本文对应题目链接:搜索二维矩阵 II


📌 题目描述

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:

  • 每行的元素从左到右升序排列。
  • 每列的元素从上到下升序排列。

示例:

输入:matrix = [[1,  4,  7, 11, 15],[2,  5,  8, 12, 19],[3,  6,  9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]
], target = 5
输出:true
解释:目标值 5 存在于矩阵中。

🧠 解题思路(图文分解)

❗ 核心难点

如何利用矩阵的特性高效搜索目标值?


方法一:线性搜索(黄金思路)✨

关键步骤:

  1. 从右上角开始搜索
    • 如果当前值等于 target,返回 true
    • 如果当前值大于 target,向左移动一列
    • 如果当前值小于 target,向下移动一行
  2. 终止条件:当行或列超出矩阵范围时停止

图解线性搜索

输入矩阵:

matrix = [[1,   4,  7, 11, 15],[2,   5,  8, 12, 19],[3,   6,  9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]
], target = 5

步骤1:从右上角开始

初始位置:(0,4) → 15 > 5 → 向左移动

步骤2:向左移动

位置:(0,3) → 11 > 5 → 向左移动

步骤3:向左移动

位置:(0,2) → 7 > 5 → 向左移动

步骤4:向左移动

位置:(0,1) → 4 < 5 → 向下移动

步骤5:向下移动

位置:(1,1) → 5 == 5 → 找到目标值

最终结果:

true

🚀 代码实现

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

💡 复杂度分析

  • 时间复杂度:O(m + n) → 最坏情况下需要遍历一行和一列
  • 空间复杂度:O(1) → 仅用常数空间

方法二:二分查找(优化思路)

关键思路:对每一行进行二分查找,适合列数较大的情况。

class Solution {public boolean searchMatrix(int[][] matrix, int target) {if (matrix == null || matrix.length == 0 || matrix[0].length == 0) {return false;}for (int[] row : matrix) {if (binarySearch(row, target)) {return true;}}return false;}private boolean binarySearch(int[] row, int target) {int left = 0, right = row.length - 1;while (left <= right) {int mid = left + (right - left) / 2;if (row[mid] == target) {return true;} else if (row[mid] < target) {left = mid + 1;} else {right = mid - 1;}}return false;}
}

🌟 总结要点

线性搜索核心思想:利用矩阵特性从右上角开始搜索
二分查找优化:适合列数较大的矩阵
适用场景:有序矩阵搜索、二维数组查找


http://www.dtcms.com/wzjs/270931.html

相关文章:

  • 招聘网站做两份简历软文推广文章范文1000
  • 个人网站设计结构图怎么发外链
  • 政府网站集约化建设经验及做法seo是哪个国家
  • 建设银行 上海科技中心网站郑州做网络营销渠道
  • 品牌的佛山网站建设营销推广的形式包括
  • 做指甲的网站叫什么名字来着百度小说排行榜2020前十名
  • ebay有做deal的网站吗简述网站建设的流程
  • asp响应式h5网站源码余姚网站如何进行优化
  • 淘宝客网站怎么做优化精准引流的网络推广
  • 宁夏网站建设哪个好上海小红书seo
  • 网站建设中遇到的问题app排名优化
  • 江西个人网站备案做论坛seo优化网站源码
  • 做网站内容字体多少ptseo描述是什么意思
  • 长沙做网站品牌山东关键词优化联系电话
  • 电商网站设计思想电商营销策略
  • 桂城网站建设费用危机舆情公关公司
  • 手机制作网站开发外贸seo软文发布平台
  • 宁波网页网站制作百度账号客服24小时人工电话
  • wordpress主题软件杭州seo公司
  • 网络营销服务有哪些关键词优化公司靠谱推荐
  • 单位网站等级保护必须做吗百度蜘蛛池自动收录seo
  • 临汾尚世互联网站建设2022年国际十大新闻
  • 怎样在赶集微网站做微招聘搜索引擎下载入口
  • 招代理的网站建设公司免费b站推广网站在线
  • 建设网站是什么样的代刷网站推广快速
  • 网站关键词seo费用拉新app推广平台排名
  • 如何用手机做钓鱼网站网站关键字排名优化
  • 专业教育网站建设江苏百度推广代理商
  • 网站域名到期如何续费站长
  • 大一网站开发体会深圳百度快照优化