【力扣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;
    }
};
相关推荐
剑挑星河月13 小时前
54.螺旋矩阵
java·算法·leetcode·矩阵
Robot_Nav13 小时前
MPPI 局部规划器实验设计讲解
人工智能·算法·mppi
mingo_敏14 小时前
Mean-Teacher 均值教师自训练框架详解
算法·均值算法
星空露珠14 小时前
迷你世界UGc3.0脚本Wiki[剧情动画模块管理接口 Timeline]
开发语言·数据结构·算法·游戏·lua
笨笨没好名字14 小时前
Leetcode刷题python3版第一周(下)
linux·算法·leetcode
手写码匠14 小时前
手写 LLM 安全护栏:从内容审核到越狱防御的完整实现
人工智能·深度学习·算法·aigc
luj_176814 小时前
草酸与烟酸对消化及糖代谢的影响解析
服务器·c语言·开发语言·经验分享·算法
青风9715 小时前
16-ADAPTRACK:基于自适应阈值的多目标跟踪匹配算法
人工智能·算法·目标跟踪
汤姆yu15 小时前
macOS系统下Aider完整安装、配置与实战使用教程
大数据·人工智能·算法·macos·github·copilot
Sam092715 小时前
【AI 算法精讲 14】TF-IDF:词频与逆文档频率
人工智能·python·算法·ai