【力扣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;
    }
};
相关推荐
一只叁木Meow6 小时前
电商 SKU 选择器:用算法实现优雅的用户交互
前端·javascript·算法
代码中介商6 小时前
红黑树完全指南:从五条性质到完整插入删除实现
数据结构·算法
2601_957786776 小时前
内容矩阵系统的底层逻辑:用信息论重新理解“批量生产“这件事
矩阵·内容架构
JieE2126 小时前
反转链表:从双指针到递归,吃透链表反转的核心逻辑
javascript·算法
玖釉-7 小时前
旋转图像:从矩阵转置、镜像到坐标变换的系统理解
c++·windows·算法·图形渲染
fengenrong7 小时前
20260522
算法
一条大祥脚7 小时前
Codeforces Round 1099 (Div. 2) 构造|贪心|图论|还原数组
java·算法·图论
Sheldon Chao7 小时前
Lecture 7 基于策略梯度的算法
人工智能·算法·机器学习
始三角龙7 小时前
LeetCode hoot 100 -- 缺失的第一个正整数
算法·leetcode·职场和发展
飞Link8 小时前
深度解析孪生网络(Siamese Network):从原理、技巧到实战应用
算法·数据挖掘·回归