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;
    }
}
相关推荐
liangbo713 小时前
06-JVM垃圾回收器之CMS
java·jvm
黑马程序员毕设13 小时前
基于Java的仪器管理系统设计与实现
java·开发语言·spring boot·后端·微信小程序
渡之13 小时前
ArduPilot (APM)滤波器之SlewLimiter 深度解析
算法
骇客野人14 小时前
SpringBoot电商购物车、结算、下单、库存方案设计与落地实施步骤
java·spring boot·后端
zander25814 小时前
LeetCode 1143. 最长公共子序列
开发语言·python·算法
Sumerking14 小时前
llc_control.c 专项评审(v3 更新版)
c语言·开发语言·算法·obc
哪 吒14 小时前
华为OD机试 - 云服务安全策略最优选择 - 深度优先搜索DFS(Java 新系统 200分)
java·华为od·深度优先
拒绝内耗。14 小时前
程序员学架构(一):一张图看懂 Java 后端架构:一个请求怎样从手机到数据库?
java·智能手机·架构
棣廷14 小时前
初识Python面向对象
java·开发语言
L小航呀14 小时前
代码随想录刷题 Day16
leetcode·面试