力扣热题100--------240.搜索二维矩阵

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:

每行的元素从左到右升序排列。

每列的元素从上到下升序排列。

示例 1:

输入:matrix = \[1,4,7,11,15,2,5,8,12,19,3,6,9,16,22,10,13,14,17,24,18,21,23,26,30], target = 5

输出:true

示例 2:

输入:matrix = \[1,4,7,11,15,2,5,8,12,19,3,6,9,16,22,10,13,14,17,24,18,21,23,26,30], target = 20

输出:false

提示:

m == matrix.length

n == matrixi.length

1 <= n, m <= 300

-109 <= matrixij <= 109

每行的所有元素从左到右升序排列

每列的所有元素从上到下升序排列

-109 <= target <= 109

思路:我们运用一个二分查找的思路 从第一行的最后一个元素开始

如果查找的元素大于被查找的元素 那我们就让行+1 如果查找的元素小于被查找的元素那我们就让列-1 如果相等 直接返回true

java 复制代码
class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int row=0;
       int col=matrix[0].length-1;
       while (col>=0 && row<matrix.length){
           if (matrix[row][col]==target){
                return true;
           }else if (matrix[row][col]<target){
               row++;
           }else {
               col--;
           }
       }
       return false;
    }
}
相关推荐
2601_9561219713 小时前
map_计蒜客T1271 完美K倍子数组
c++·算法
小宋102113 小时前
不用学算法也能玩转 AI?普通 Java 程序员转 AI 应用开发路线
java·人工智能·重构
编程圈子13 小时前
电机驱动开发学习19. 霍尔 BLDC 三段式 FOC 启动算法
驱动开发·学习·算法
Hello_Damon_Nikola13 小时前
伺服电机堵转检测算法详解
单片机·嵌入式硬件·算法
我是唐青枫14 小时前
Java Jetty 实战详解:从嵌入式 HTTP 服务到 Spring Boot 容器替换
java
带刺的坐椅14 小时前
当所有人都在用 TS/Python 写 Agent,我们为什么坚持 Java
java·ai·solon·codex·opencode·soloncode
小王师傅6614 小时前
英语学习记
java·学习
罗小罗同学14 小时前
安德森癌症中心发表SCOPE IO模型,实现了对罕见肿瘤帕博利珠单抗疗效的精准预测,在患者早期即可预判药效
人工智能·算法·医学图像处理·医学ai
变量未定义~14 小时前
Tarjan算法-强连通分量、路径、出差
算法
geovindu14 小时前
CSharp: Iterative Algorithms
开发语言·后端·算法·c#·.net·迭代算法