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;
    }
}
相关推荐
MSXmiao19 分钟前
2048小游戏
数据结构·c++·算法
CoovallyAIHub1 小时前
论文精读|YOLO系列最新模型水下实测:v8为何能斩获80.9% mAP?
深度学习·算法·计算机视觉
Ghost-Face1 小时前
《算法导论》笔记--归并排序 & 算法原理
算法
好好研究1 小时前
Java基础学习(一):类名规范、返回值、注释、数据类型
java·学习·算法
C++、Java和Python的菜鸟1 小时前
第二章 矩阵
人工智能·算法·矩阵
阑梦清川2 小时前
搜索算法---填涂颜色问题(在外围添加多余的0的求解方法)
算法
qiuyunoqy2 小时前
蓝桥杯算法之搜索章 - 2
算法·蓝桥杯·深度优先
2301_763994712 小时前
c++11特性
数据结构·c++·算法
快去睡觉~3 小时前
力扣148:排序链表
算法·leetcode·链表
玄昌盛不会编程3 小时前
LeetCode——2683. 相邻值的按位异或
java·算法·leetcode