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

【LeetCode240.搜索二维矩阵Ⅱ】以及变式

题目链接

240. 搜索二维矩阵 II - 力扣(LeetCode)

实现思路

  • 利用行有序、列有序的特点,可以从右上角或者左下角开始判断,以左下角为例,如果小于目标值就向右移动,也就排除了一列;如果大于目标值就向上移动,也就排除了一行。时间复杂度为O(m+n)。
    • 为什么不从左上角或者右下角判断呢,以右下角为例,如果小于目标值,这个矩阵的最大值小于目标值,说明肯定就找不到目标值,如果大于目标值,可以向左也可以向上,移动的方向不唯一。
  • (之前想的是每次遍历一行,然后二分找,但是这样时间复杂度是O(mlogn))。

代码实现

class Solution {
public:bool searchMatrix(vector<vector<int>>& matrix, int target) { int m = matrix.size();int n = matrix[0].size();int i = m - 1, j = 0;while (true) {if (matrix[i][j] > target) {i--;} else if (matrix[i][j] < target) {j++;} else {return true;}if (i == -1 || j == n) {return false;}}return false;}
};

变式

  • 如果存在重复元素,找最小下标呢?这里所说的最小下标指的是行优先,也就是i越小认为下标越小。
class Solution {
public:vector<int> searchMatrix(vector<vector<int>>& matrix, int target) {int m = matrix.size();int n = matrix[0].size();int i = 0, j = n - 1;while (true) {if (matrix[i][j] > target) {j--;} else if (matrix[i][j] < target) {i++;} else {int left = target + 1;if (j - 1 >= 0) {left = matrix[i][j - 1];}if (left == target) {j--;} else {return {i, j};}}if (i == m || j == -1) {break;}}return {-1, -1};}
};

http://www.dtcms.com/a/278689.html

相关文章:

  • ASP.NET Core中数据绑定原理实现详解
  • C++-多态
  • mybatis-plus-jpa-support
  • 基于MATLAB的LSTM长短期记忆神经网络的数据回归预测方法应用
  • 穿透、误伤与回环——Redis 缓存防御体系的负向路径与治理艺术
  • LightGBM 在处理**不均衡二分类任务**时,能在 **AUC 和 Accuracy** 两个指标上表现良好
  • 三轴云台之姿态调节技术篇
  • 【2025】Global Mapper中文版安装教程保姆级一键安装教程(附安装包)
  • 海外货运物流系统多语言系统实现
  • 蜻蜓I即时通讯水银版系统直播功能模块二次开发文档-详细的直播功能模块文档范例-卓伊凡|麻子
  • 【PTA数据结构 | C语言版】字符串替换算法
  • mitt全局通信
  • Boost.Asio 异步写:为什么多次 async_write_some 会导致乱序,以及如何解决
  • Angular 框架下 AI 驱动的企业级大前端应用开
  • 2025/7/14——java学习总结
  • Ubuntu安装Mongodb
  • 《甘肃棒球》国家级运动健将标准·棒球1号位
  • 九、官方人格提示词汇总(下)
  • OpenCV 视频处理与摄像头操作详解
  • 面试题--xxl-job分布式任务调度
  • 全面解析WOFOST与PCSE农作物生长模型;农作物生长和产量预测
  • 基于esp32系列的开源无线dap-link项目使用介绍
  • 空间智能-李飞飞团队工作总结(至2025.07)
  • 【工具】AndroidStudio修改中文语言汉化
  • Python数据容器-通用功能
  • 九、官方人格提示词汇总(中-1)
  • Usage of standard library is restricted (arkts-limited-stdlib) <ArkTSCheck>
  • 【leetcode】231. 2的幂
  • 13.7 Meta LLaMA2-Chat核心技术突破:三重强化学习实现91.4%安全评分,超越ChatGPT的对话模型架构全解析
  • React 第六十九节 Router中renderMatches的使用详解及注意事项