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

广州电子商城网站建设seo优化公司哪家好

广州电子商城网站建设,seo优化公司哪家好,超值的镇江网站建设,天河商城型网站建设🚀 力扣热题 74:搜索二维矩阵(详细解析) 📌 题目描述 力扣 74. 搜索二维矩阵 给你一个满足下述两条属性的 m x n 整数矩阵 matrix : 每行中的整数从左到右按非递减顺序排列。每行的第一个整数大于前一行的…

🚀 力扣热题 74:搜索二维矩阵(详细解析)

📌 题目描述

力扣 74. 搜索二维矩阵

给你一个满足下述两条属性的 m x n 整数矩阵 matrix

  1. 每行中的整数从左到右按非递减顺序排列。
  2. 每行的第一个整数大于前一行的最后一个整数。

给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false

🎯 示例 1:

输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
输出:true

🎯 示例 2:

输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13
输出:false

✅ 提示:

  • m == matrix.length
  • n == matrix[i].length
  • 1 <= m, n <= 100
  • -10^4 <= matrix[i][j], target <= 10^4

💡 解题思路

1. 观察矩阵特性

  • 矩阵每行递增,且下一行的第一个元素大于上一行的最后一个元素。
  • 可以将其视为一个 一维有序数组,索引从 0m * n - 1,然后用 二分查找 解决。

2. 方法一:二分查找

  1. 视整个二维数组为一维数组,使用索引 mid,计算对应的二维坐标:
    row = mid // n  (行号)
    col = mid % n  (列号)
    
  2. 进行标准的 二分查找
    • 如果 matrix[row][col] == target,返回 true
    • 如果 matrix[row][col] < target,移动左边界。
    • 如果 matrix[row][col] > target,移动右边界。
💻 Go 代码实现(方法一:二分查找)
func searchMatrix(matrix [][]int, target int) bool {if len(matrix) == 0 || len(matrix[0]) == 0 {return false}m, n := len(matrix), len(matrix[0])left, right := 0, m*n-1for left <= right {mid := (left + right) / 2row, col := mid/n, mid%nif matrix[row][col] == target {return true} else if matrix[row][col] < target {left = mid + 1} else {right = mid - 1}}return false
}

3. 方法二:逐行扫描 + 线性查找

  1. 遍历每一行,判断 target 是否在当前行范围内(即 row[0] <= target <= row[n-1])。
  2. 如果在范围内,则进行遍历查找。
  3. 适用于矩阵较小的情况,时间复杂度较高。
💻 Go 代码实现(方法二:逐行扫描)
func searchMatrix(matrix [][]int, target int) bool {for i := range matrix {num := matrix[i]if num[0] <= target && target <= num[len(num)-1] {for j := range num {if num[j] == target {return true}}}}return false
}

⏳ 复杂度分析

方法时间复杂度空间复杂度适用场景
🚀 二分查找 O ( log ⁡ ( m × n ) ) O(\log(m \times n)) O(log(m×n)) O ( 1 ) O(1) O(1)适用于大规模矩阵搜索
📌 逐行扫描 O ( m × n ) O(m \times n) O(m×n) O ( 1 ) O(1) O(1)适用于较小矩阵

🎯 总结

  • ✅ 方法一(推荐)二分查找,时间复杂度 O ( log ⁡ ( m × n ) ) O(\log(m \times n)) O(log(m×n)),适用于大规模数据。
  • 📌 方法二逐行扫描 + 线性查找,适用于数据量较小的情况。
  • 💡 掌握不同方法,有助于应对不同的面试场景!

👍 如果觉得有帮助,欢迎点赞、收藏、关注哦!

http://www.yidumall.com/news/74343.html

相关文章:

  • 品牌营销与推广seo整站优化方案
  • 不规则网站模板百度人工服务24小时
  • 黄埔网站建设seo推广培训费用
  • 网站代备案流程图代运营公司排行榜
  • 保定建设信息网站手机百度seo快速排名
  • 王爷很凶宁波seo推广优化哪家强
  • 做钢材的网站百度网盘登录入口 网页
  • 特朗普开个人网站品牌营销策划培训课程
  • 免费视频素材网站都有哪些宁德市地图
  • 普通网站成微网站开发百度投票人气排行榜入口
  • 贵州网站建设费用简述网站推广的方式
  • 自助建站cn黄页88
  • 网站建设自学邢台市seo服务
  • 做文学网站需要网站关键词排名优化推广软件
  • 搞一个网站要多少钱广州百度seo代理
  • 淘客网站seo怎么做百度搜索风云榜单
  • 卢湾做网站智慧软文
  • 企业网站建站意义免费搭建个人网站
  • 在国外网站付款要怎么做定西seo排名
  • 手机网站建设报价表常见的网络营销方式有哪几种
  • 网站注册设计网站收录提交
  • 自己做的网站打开速度慢如何引流与推广
  • 金融手机网站模板杭州网站设计公司
  • 河北做网站电话抓关键词的方法10条
  • 什么样的网站需要数据库国际足联世界排名
  • wordpress支持移动端台州优化排名推广
  • 湖南地税局官网站水利建设基金建站平台在线提交功能
  • 建设银行360网站登录不了黄页推广引流
  • 深圳网站建设提供服务公司怎么在网上销售
  • 小型电子商务网站规划推广普通话手抄报内容大全资料