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;
    }
}
相关推荐
s_w.h8 分钟前
【 linux 】线程互斥与同步
java·linux·服务器·开发语言
学长毕业设计9 分钟前
基于SpringBoot的校园二手物品交易系统(源码+文档+讲解视频)
java·spring boot·后端
观无20 分钟前
若依AOP
java
刘孬孬沉迷学习20 分钟前
AI音频领域完整调研:任务、算法、大模型研究全梳理
人工智能·算法·音视频
是2的10次方啊22 分钟前
日志不是越多越好:开发优化、常见坑与线上排查命令
java
退休倒计时24 分钟前
【每日五题】leetcode TypeScript
算法·leetcode·职场和发展·typescript
ofoxcoding27 分钟前
Claude Fable 5.1 API 接入指南:模型标识、五级定价策略、effort 参数与缓存 TTL 配置详解
java·spring·缓存·ai
机器学习之心38 分钟前
基于BiGRU-Attention的轴承剩余寿命预测(MATLAB实现):从振动信号到RUL曲线的完整闭环
数据结构·算法·matlab·轴承剩余寿命预测·振动信号·bigru-attention
青梅橘子皮38 分钟前
优选算法---专题2(滑动窗口)
数据结构·算法
zww894911142 分钟前
相册印刷项目实战指南:从设计到成品的完整技术流程
java·小程序·eclipse