题目所属分类
由于是升序 优先二分
一维坐标转换成二维坐标的话 mid/m mid %m
原题链接
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:
每行中的整数从左到右按升序排列。
每行的第一个整数大于前一行的最后一个整数。
代码案例:输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
输出:true
题解
我们可以想象把整个矩阵,按行展开成一个一维数组,那么这个一维数组单调递增,然后直接二分即可。
二分时可以通过整除和取模运算得到二维数组的坐标。
时间复杂度分析:二分的时间复杂度是 O(logn^2)=O(logn)
class Solution {