【力扣hot100题】(119)搜索二维矩阵 II

有点难度的简单题。

我的想法是观察最左下和最右上的元素:若左下元素大于target,则可以去掉左下元素所在的行(最后一行),否则去掉左下元素在的列(第一列);若右上元素大于target,则可以去掉右上元素所在的列(最后一列),否则可以去掉右上元素所在的行(第一行)。

如此反复知道只剩一个元素。

cpp 复制代码
class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        int beginrow=0;
        int endrow=matrix.size()-1;
        int begincolumn=0;
        int endcolumn=matrix[0].size()-1;
        while(endcolumn>begincolumn||endrow>beginrow){
            for(endrow;endrow>=beginrow;endrow--){
                if(matrix[endrow][begincolumn]==target) return 1;
                if(matrix[endrow][begincolumn]<target) break;
            }
            for(beginrow;beginrow<endrow;beginrow++){
                if(matrix[beginrow][endcolumn]==target) return 1;
                if(matrix[beginrow][endcolumn]>target) break;
            }
            for(endcolumn;endcolumn>=begincolumn;endcolumn--){
                if(matrix[beginrow][endcolumn]==target) return 1;
                if(matrix[beginrow][endcolumn]<target) break;
            }
            for(begincolumn;begincolumn<endcolumn;begincolumn++){
                if(matrix[endrow][begincolumn]==target) return 1;
                if(matrix[endrow][begincolumn]>target) break;
            }
        }
        if(matrix[beginrow][begincolumn]==target) return 1;
        return 0;
    }
};
相关推荐
小蒋学算法4 小时前
算法-交替删除操作后最后剩下的整数-跟着灵茶山艾府学算法
数据结构·算法
荆棘鸟智能4 小时前
林业遥感长势评估怎么做?从NDVI时序分析到LiDAR蓄积量回归
人工智能·算法·智慧林业
hhb_6185 小时前
AIRAGDebug:一键定位RAG链路异常
人工智能·python·算法
朝朝辞暮i5 小时前
C++ 第 6 课:switch —— 多状态选择
开发语言·c++·算法
苏打豆6 小时前
Pinocchio源码阅读——刚体运动物理量空间变换及求导
c++·线性代数·算法·矩阵·机器人
FluxArt6 小时前
GPT Image 2.5 中文提示词教程:Flux Art 可复用模板
前端·gpt·算法
思麟呀6 小时前
位运算:从一个整数到一个集合
c语言·数据结构·c++·算法
阜阳山君GEO6 小时前
豆包 SEED 新版本 GEO 优化:信源金字塔、打分体系与避坑落地指南
人工智能·算法
晓天衡宇•评测社区7 小时前
晓天衡宇亮相 2026 云栖大会:迈向更可信的高质量评测
人工智能·算法·机器学习
CQU_JIAKE7 小时前
9.12[a]
算法