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;
    }
}
相关推荐
stripe-python3 小时前
十二重铲雪法(上)
c++·算法
一 乐3 小时前
林业资源管理|基于java + vue林业资源管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·林业资源管理系统
lipiaoshuigood3 小时前
微服务生态组件之Spring Cloud LoadBalancer详解和源码分析
java·spring cloud·微服务
Geoking.4 小时前
什么是乐观锁?原理、实现方式与实战详解
java·开发语言
小光学长4 小时前
基于ssm的校园约自习网站23i21xj4(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
java·数据库·spring
人道领域4 小时前
Spring拦截器原理与实战详解
java·运维·服务器
茶杯梦轩4 小时前
从零起步学习并发编程 || 第一章:初步认识进程与线程
java·服务器·后端
振鹏Dong4 小时前
ReActAgent 源码深度拆解:从调用入口到 ReAct-Loop,读懂智能体 “推理 - 行动” 范式
java·人工智能·spring·ai
ccLianLian4 小时前
计算机基础·cs336·RLHF
深度学习·算法
QQ 31316378904 小时前
文华财经期货指标公式大全精品套装无未来
java