【力扣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;
    }
};
相关推荐
lbb 小魔仙11 分钟前
面向 NPU 的高性能矩阵乘法:CANN ops-nn 算子库架构与优化技术
线性代数·矩阵·架构
空白诗19 分钟前
CANN ops-nn 算子解读:大语言模型推理中的 MatMul 矩阵乘实现
人工智能·语言模型·矩阵
Wei&Yan40 分钟前
数据结构——顺序表(静/动态代码实现)
数据结构·c++·算法·visual studio code
团子的二进制世界1 小时前
G1垃圾收集器是如何工作的?
java·jvm·算法
吃杠碰小鸡1 小时前
高中数学-数列-导数证明
前端·数学·算法
故事不长丨1 小时前
C#线程同步:lock、Monitor、Mutex原理+用法+实战全解析
开发语言·算法·c#
long3161 小时前
Aho-Corasick 模式搜索算法
java·数据结构·spring boot·后端·算法·排序算法
近津薪荼1 小时前
dfs专题4——二叉树的深搜(验证二叉搜索树)
c++·学习·算法·深度优先
熊文豪1 小时前
探索CANN ops-nn:高性能哈希算子技术解读
算法·哈希算法·cann
熊猫_豆豆2 小时前
YOLOP车道检测
人工智能·python·算法