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;
    }
}
相关推荐
夏鹏今天学习了吗13 小时前
【LeetCode热题100(73/100)】买卖股票的最佳时机
算法·leetcode·职场和发展
gaosushexiangji14 小时前
一项基于粒子图像测速(PIV)速度场反演的压力场重构技术
人工智能·算法
Voyager_414 小时前
算法学习记录17——力扣“股票系列题型”
学习·算法·leetcode
雨大王51214 小时前
汽车涂装工艺的智能化与绿色化升级:技术、案例与趋势
算法
XFF不秃头14 小时前
【力扣刷题笔记-在排序数组中查找元素的第一个和最后一个位置】
c++·笔记·算法·leetcode
yoyo君~14 小时前
FAST-LIVO2 深度技术解析
算法·计算机视觉·机器人·无人机
我也要当昏君14 小时前
时间复杂度
算法·数学建模
业精于勤的牙14 小时前
浅谈:算法中的斐波那契数(六)
人工智能·算法
小孟的CDN14 小时前
使用pytorch进行batch_size分批训练,并使用adam+lbfgs算法——波士顿房价预测
pytorch·算法·batch·代码·adam+lbfgs
仰泳的熊猫14 小时前
1037 Magic Coupon
数据结构·c++·算法·pat考试