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

leetcode240-搜索二维矩阵

leetcode 240
在这里插入图片描述

思路

1. 矩阵特性
首先,利用矩阵的特性是解题的关键:

  • 每行的元素递增
  • 每列的元素递增

这意味着,如果我们在矩阵中从右上角或左下角开始搜索,可以有效缩小搜索范围

2. 从右上角开始搜索

  • 将搜索的起点定位在矩阵的右上角
  • 如果当前元素等于目标值,返回 true
  • 如果当前元素大于目标值,则向左移动(列数 -1)
  • 如果当前元素小于目标值,则向下移动(行数 +1)
  • 这种方法保证每一步都在缩小查找范围,并且时间复杂度为 O(m + n),其中 m 是行数,n 是列数

3. 处理边界条件
在实现过程中,需要处理好矩阵的边界条件,例如:

  • 矩阵的行数和列数可以为零
  • 确保不越界访问矩阵元素

参考视频:https://www.bilibili.com/video/BV1hEVWzvEsL/?spm_id_from=333.337.search-card.all.click&vd_source=ccb42000243a376a86b435878466ec00

实现

var searchMatrix = function (matrix, target) {let startRow = 0, endCol = matrix[0].length - 1;// 从右上角开始while (startRow < matrix.length && endCol >= 0) {if (matrix[startRow][endCol] === target) {return true} else if (matrix[startRow][endCol] > target) {endCol--} else {startRow++}}return false
};
http://www.xdnf.cn/news/965341.html

相关文章:

  • 搜索二维矩阵
  • Java八股文——MyBatis篇
  • 记录win10/win11安装docker desktop全过程
  • Java入门学习详细版(二)
  • 深入解析默认值工具类:DefaultUtil
  • Chapter03-Authentication vulnerabilities
  • JS深入之从原型到原型链
  • 安装 docker-ce 时 错误:缺少container-selinux >= 2:2.74 错误:缺少 libcgroup
  • crosstool-ng构建sysroot
  • 【面向对象】1. 原型与原型链的概念
  • 如何保证RocketMQ消息不丢失
  • TDengine 快速体验(Docker 镜像方式)
  • docker 网络管理
  • 观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
  • MyBatis的#和$符号详解(Java面试)
  • 企业产品网络安全日志6月10日-WAF资费消耗排查
  • 【大模型01---Flash Attention】
  • 常见的http状态码
  • MySQL主从复制实现指南
  • AWS Lambda Python + AWS Secrets Manager + AWS Aurora Mysql
  • AI+预测3D新模型百十个定位预测+胆码预测+去和尾2025年6月10日第104弹
  • 深度学习聊天机器人 需要考虑
  • Linux简单的操作
  • 基于算法竞赛的c++编程(29)类的概念和简单应用
  • v-bind 与 v-model 的区别与联系详解
  • python第48天打卡
  • 通过 VS Code 连接 GitLab 并上传项目
  • 第十四届蓝桥杯_省赛B组(C).冶炼金属
  • 【单片机期末】汇编试卷
  • 64页|PPT|基于华为IPD与质量管理体系融合的研发质量管理:L1-L6分层架构驱动高效运营、标准化质量管理体系