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;
}
相关推荐
网域小星球19 小时前
C语言从0入门(十)|二维数组详解与矩阵实战
c语言·算法·矩阵·二维数组·数组遍历
澈20719 小时前
堆排序:高效构建大顶堆实战
数据结构·算法·排序算法
我真不是小鱼19 小时前
cpp刷题打卡记录27——无重复字符的最长子串 & 找到字符串中所有字母的异位词
数据结构·c++·算法·leetcode
XuecWu319 小时前
原生多模态颠覆Scaling Law?解读语言“参数需求型”与视觉“数据需求型”核心差异
人工智能·深度学习·算法·计算机视觉·语言模型
We་ct19 小时前
LeetCode 69. x 的平方根:两种解法详解
前端·javascript·算法·leetcode·typescript·平方
一直不明飞行19 小时前
C++:string,写法s.find(‘@‘) != s.end()是否有问题
开发语言·c++·算法
Proxy_ZZ020 小时前
打造自己的信道编码工具箱——Turbo、LDPC、极化码三合一
c语言·算法·信息与通信
wayz1120 小时前
21天机器学习核心算法学习计划(量化方向)
学习·算法·机器学习
穿条秋裤到处跑20 小时前
每日一道leetcode(2026.04.09):区间乘法查询后的异或 II
算法·leetcode
超级大只老咪20 小时前
一维度前缀和解题通用模板(java)
java·开发语言·算法