Leetcode 搜索二维矩阵

使用二分查找来解决该问题。这道题使用二分查找算法的核心点在于一维索引 mid 对应的二维矩阵位置换算公式 matrix[mid / n][mid % n]

java 复制代码
class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int rows = matrix.length;
        int cols = matrix[0].length;
        int left = 0;
        int right = rows * cols - 1;

        while(left <= right) {
            int mid = left + (right - left) / 2;
            int midValue = matrix[mid / cols][mid % cols];
            if(midValue == target) {
                return true;
            } else if(midValue > target) {
                right = mid - 1;
            } else {
                left = mid + 1;
            }
        }
        return false;
    }
}
相关推荐
翟天保Steven2 分钟前
ITK-基于Mattes互信息的二维多模态配准算法
算法
代码对我眨眼睛5 分钟前
226. 翻转二叉树 LeetCode 热题 HOT 100
算法·leetcode·职场和发展
黑色的山岗在沉睡1 小时前
LeetCode 494. 目标和
算法·leetcode·职场和发展
haoly19894 小时前
数据结构和算法篇-线性查找优化-移至开头策略
数据结构·算法·移至开头策略
学Linux的语莫7 小时前
机器学习数据处理
java·算法·机器学习
earthzhang20218 小时前
【1007】计算(a+b)×c的值
c语言·开发语言·数据结构·算法·青少年编程
2301_803554529 小时前
C++联合体(Union)详解:与结构体的区别、联系与深度解析
java·c++·算法
sali-tec10 小时前
C# 基于halcon的视觉工作流-章42-手动识别文本
开发语言·人工智能·算法·计算机视觉·c#·ocr
SandySY11 小时前
品三国谈人性
算法·架构
小欣加油11 小时前
leetcode 62 不同路径
c++·算法·leetcode·职场和发展