LeetCode【74】搜索二维矩阵

题目:

代码:

java 复制代码
public static boolean searchMatrix(int[][] matrix, int target) {

    int rows = matrix.length;
    int columns = matrix[0].length;

    // 先找到行,行为当前行第一列<target,当前行+1行,第一列>target
    for (int i = 0; i < rows; i++) {
        if (matrix[i][0] == target) {
            return true;
        } else if (i + 1 == rows || matrix[i + 1][0] > target && matrix[i][0] < target) {   // 这里从下标0开始,遍历到最后一行数组下标越界问题耗费了很长时间,注:最后一行 i+1==rows直接进行二分
            int left = 0, right = columns - 1;
            while (left <= right) {

                int mid = left + (right - left) / 2;
                if (matrix[i][mid] == target) {
                    return true;
                } else if (matrix[i][mid] > target) {
                    right = mid - 1;
                } else {
                    left = mid + 1;
                }
            }
        } else {
            // continue;
        }
    }

    return false;
}
相关推荐
民乐团扒谱机7 小时前
【微实验】谐波乘积谱(HPS)算法深度解析:原理、数学与代码实现
开发语言·人工智能·python·算法·语音识别·音乐
Nil2087 小时前
leetcode 73矩阵置0
算法·leetcode·矩阵
忍冬k8 小时前
DeepSeek harness安装指南
java·开发语言·数据结构·c++·算法
何以解忧,唯有..8 小时前
预订酒店问题
算法
No8g攻城狮9 小时前
【算法】什么是 DFS 与 BFS 及他们的区别
算法·深度优先·宽度优先
旖旎夜光9 小时前
LeetCode 1658:将 x 减到 0 的最小操作数(滑动窗口) —— 题解
数据结构·c++·算法·leetcode·滑动窗口
zww89491119 小时前
家政派单系统实战指南:从需求分析到智能调度算法落地
算法·需求分析
手写码匠9 小时前
华为云Flexus+DeepSeek征文|Dify 多 Agent 评测实战:用 DeepSeek-R1 当裁判,打造多智能体系统的自动化质量保障体系
人工智能·深度学习·算法·aigc
ZC跨境爬虫9 小时前
LeetCode 88. 合并两个有序数组(双指针详解 + Java Python 实现)
java·python·算法·leetcode
Nil2089 小时前
leetcode 238除了自身以外数组的乘积
数据结构·算法·leetcode