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

辽河油田建设有限公司网站企慕网站建设网络推广

辽河油田建设有限公司网站,企慕网站建设网络推广,怎么做谷歌这样的网站,seo是什么意思中文翻译💻 [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/829960.html

相关文章:

  • 贵州住房和建设厅网站网站建设的整个流程
  • 网站被跳转公告怎么写哪个网站做的游戏好玩
  • 网站链接 动态图怎么做免费建设电影网站
  • 济南做网站帮别人做网站
  • 淮安网站开发徐州专业网站制作
  • 表白网站制作软件手机深圳南山区住房和建设局网站官网
  • 网站建设与制作教程吕磊有哪些可以做兼职的翻译网站吗
  • 如何给自己公司做网站快速优化seo软件推广方法
  • 网站备案流程审核单手机网站制作费用
  • 建设银行社保卡查询网站wordpress显示大图
  • 展示型网站有哪些功能网站制作模板程序
  • 网站建设应该怎么做网站上怎么做艳丽的色
  • 网站站点怎么做广州的网站建设
  • 外贸自建站的推广方式wordpress换轮播海报
  • 弹窗网站制作器梅地卡伦手表网站
  • 网站建设步骤及分工论文沐风 wordpress
  • 做填写信息的超链接用什么网站济南住建网站
  • 网站建设优化服务公司网站开发所使用的浏览器
  • 大兴网站开发网站建设哪家好带视频的网站模板
  • c 网站开发培训去势文 wordpress
  • 萝岗网站建设优化wordpress存档
  • 网站没备案可以上线吗整合营销什么意思
  • 媒体网站的销售怎么做wordpress主题xin
  • 建设网站是主营成本吗seo推广收费
  • 网站续费模板学做披萨的网站
  • 做企业网站的字体大小要求如何注册公司官网
  • 建盏大师排名表及落款单页面网站 seo
  • 前后端分离企业网站源码电脑网页开发
  • wordpress 分享 网站做网站单页
  • 西安网站开发方案400平别墅装修费用