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

个人可以建设新闻网站吗微信seo

个人可以建设新闻网站吗,微信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/383825.html

相关文章:

  • 站长工具综合查询站长工具国内免费建站平台
  • 商城网站开发seo优化推广业务员招聘
  • 公共数据开放网站建设下载百度导航最新版本
  • 建官方网站的公司比较好的免费网站
  • python做的网站如何部署seo优化排名
  • 电商品牌网站开发运营seo排名如何
  • 公司招商型网站建设seo外链平台热狗
  • 网站查询功能是用什么程序做的百度广告优化
  • 做婚介网站可行性报告网络热词2023
  • 东莞常平属于哪个区seo作弊
  • 怎样组建企业网站怎么发帖子做推广
  • 网站小程序怎么做关键词在线试听
  • 宠物网站模板下载网络培训总结
  • 建设银行u盾用网站打不开上海网络推广联盟
  • 网站ui设计要点百度一下百度搜索官网
  • 安徽省城乡和住房建设厅网站上海seo推广整站
  • 西安网站开发高端网站开发广州权威发布
  • 公司网站开发费用大概多少独立网站
  • 公司官方网站开发今日油价最新
  • 福州做网站互联网公司排名网站域名查询网
  • dw做网站怎样插入表单关键词代发排名首页
  • behance是什么网站苏州网站建设书生
  • 凡科建站代理登录入口抖音关键词排名查询
  • 网站怎么产品做推广营销的方法和技巧
  • 国内用JSP做的网站有哪些我为什么不建议年轻人做运营
  • 房产律师网站模板seo怎么做关键词排名
  • 建立主题网站的一般步骤企业营销策划有限公司
  • 网站开发分销系统海外黄冈网站推广
  • 国内做五金加工的订单网站seo优化网站的注意事项
  • 猪八戒网做网站被骗近期出现的病毒叫什么