leetcode 240. 搜索二维矩阵 II

2023.11.22

本题最先想到的是暴力法和二分法,暴力法就不写了,写一下二分法的解法,java代码如下:

java 复制代码
class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        for(int[] row : matrix){
            int left = 0;
            int right = row.length-1;
            while(left <= right){
                int mid = (left + right) / 2;
                if(row[mid] == target) return true;
                else if(row[mid] > target) right = mid-1;
                else left = mid + 1; 
            }
        }
        return false;
    }
}

翻看了下评论区,有个Z字型解法,是从右上角开始遍历,我则从左下角开始遍历,然后当前元素大于target值就往上走,小于target值就往右走,直到走到边界也没找到就返回false,java代码如下:

java 复制代码
class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int row = matrix.length-1;
        int col = 0;
        //从左下角开始搜索
        while(row>=0 && col<matrix[0].length){
            if(matrix[row][col] == target) return true;
            else if(matrix[row][col] > target) row--;
            else col++;
        }
        return false;
    }
}
相关推荐
京师20万禁军教头14 小时前
36面向对象(高级)-类变量(静态变量)和类方法(静态方法)
java
deviant-ART14 小时前
HttpServletResponse 中 Header 与 OutputStream 的正确使用顺序(避坑指南)
java·后端·servlet
阿Y加油吧14 小时前
二刷 LeetCode:5. 最长回文子串 & 1143. 最长公共子序列 复盘笔记
笔记·算法·leetcode
JAVA面经实录91715 小时前
Spring AI 高频开发万能 Prompt 合集 + 生产级工具类
java·人工智能·spring·prompt
JAVA面经实录91715 小时前
如何选择适合项目的「限流 / 熔断 / 降级」方案
java·spring·kafka·sentinel·guava
广州灵眸科技有限公司15 小时前
瑞芯微(EASY EAI)RV1126B AI算法开发流程
人工智能·算法·机器学习
Rabitebla16 小时前
【C++】string 类:原理、踩坑与对象语义
linux·c语言·数据结构·c++·算法·github·学习方法
小雅痞17 小时前
[Java][Leetcode middle] 167. 两数之和 II - 输入有序数组
java·算法·leetcode
CN-Dust17 小时前
【C++】输入cin例题专题
java·c++·算法
数模竞赛Paid answer18 小时前
2025年MathorCup数学建模A题汽车风阻预测解题文档与程序
算法·数学建模·mathorcup