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;
    }
}
相关推荐
社交怪人17 小时前
【歌手大奖赛】信息学奥赛一本通C语言解法(题号2072)
c语言·算法
ChampaignWolf17 小时前
在 Eclipse 中使用 Tabnine
java·ide·eclipse
数据科学小丫17 小时前
算法:逻辑回归
算法·机器学习·逻辑回归
爱写代码的小朋友17 小时前
基于多约束遗传算法的中小学排座位优化模型研究
linux·人工智能·算法
один but you17 小时前
unorder_map 和unorder_set
算法·哈希算法·散列表
jiayong2317 小时前
前端面试题库 - JavaScript核心基础篇
前端·javascript·面试
JAVA面经实录91717 小时前
Java多线程并发高频面试100题(完整版·含答案·背诵版)
java·开发语言·面试
XiYang-DING17 小时前
【Java EE】TCP—流量控制和拥塞控制
java·tcp/ip·java-ee
sheeta199817 小时前
LeetCode 每日一题笔记 日期:2026.05.20 题目:2657. 找到前缀公共数组
笔记·算法·leetcode
数智工坊18 小时前
【UniT论文阅读】:用统一物理语言打通人类与人形机器人的知识壁垒
论文阅读·人工智能·深度学习·算法·机器人