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;
    }
}
相关推荐
盼哥PyAI实验室2 分钟前
Python多线程实战:12306抢票系统的并发处理优化
java·开发语言·python
风月歌4 分钟前
小程序项目之农业电商服务系统源代码
java·mysql·毕业设计·ssm·源码
骚戴9 分钟前
架构设计之道:构建高可用的大语言模型(LLM) Enterprise GenAI Gateway
java·人工智能·架构·大模型·gateway·api
TH_19 分钟前
7、在线接口文档沟通
java
Silence_Jy10 分钟前
cs336Lecture 5 and7
java·redis·缓存
小尧嵌入式10 分钟前
C++11线程库的使用(上)
c语言·开发语言·c++·qt·算法
周杰伦_Jay17 分钟前
【后端开发语言对比】Java、Python、Go语言对比及开发框架全解析
java·python·golang
蓝色汪洋19 分钟前
luogu填坑
开发语言·c++·算法
计算机毕设指导619 分钟前
基于微信小程序的网络安全知识科普平台系统【源码文末联系】
java·spring boot·安全·web安全·微信小程序·小程序·tomcat
while(1){yan}27 分钟前
网络编程UDP
java·开发语言·网络·网络协议·青少年编程·udp·电脑常识