Leetcode面试经典150题-74.搜索二维矩阵

解法都在代码里,不懂就留言或者私信

二分查找,比较简单

java 复制代码
class Solution {
    /**解题思路:每一行有序、每一列也有序,只是整体不是严格有序的,那我们需要找一个点,只能往两个方向走,往一个方向走是变小
    往另外一个方向走是变大,我们右两种选择:左下角的点和右上角的点
    我习惯于用右上角的点 */
    public boolean searchMatrix(int[][] matrix, int target) {
        /**就一个数比较相等不相等就完事了呗 */
        if(matrix.length == 1 && matrix[0].length == 1) {
            return matrix[0][0] == target;
        }
        int curRow = 0;
        int curCol = matrix[0].length - 1;
        /**行是变大的,列是变小的,只有这一种走法,while条件是为了避免越界*/
        while(curRow < matrix.length && curCol >= 0) {
            if(matrix[curRow][curCol] == target) {
                return true;
            } else if(matrix[curRow][curCol] < target) {
                curRow ++;
            } else {
                curCol --;
            }
        }
        /**中间没有返回true说明没找到,这里返回false作为答案 */
        return false;
    }
}
相关推荐
sunshine22 girl2 小时前
Java学习七 Java 项目实战2-注册业务
java·学习
丑陋小蚊子2 小时前
邮件投简历,正文和附件各写什么?
面试·求职招聘·大学生·简历·简历下载
奋发向前wcx2 小时前
CSP-J复赛模拟赛4 王晨旭补题 2026.10.5
算法
省钱兄--zs2 小时前
北京24小时自助健身房系统软件开发实战:从架构设计到部署指南
java·数据仓库·spring boot·小程序·需求分析
youdexiang2 小时前
Android录音软件时间关键词检索功能分析
java·人工智能
架构技术专栏3 小时前
学习率:一次参数更新,到底应该改多少
面试
架构技术专栏3 小时前
AI Agent 框架怎么选:从一次制度查询拆出技术边界
后端·面试
sunshine22 girl3 小时前
Java学习七 Java 项目实战1-项目创建和主页面搭建
java·开发语言·学习
code2cat3 小时前
Java进阶篇之AtomicStampedReference:引用回到原值,版本戳仍能记住变化
java·cas·并发编程·aba
念何架构之路4 小时前
zap采样器与性能优化内幕
算法·性能优化·哈希算法