假设输入矩阵为m * n,那么我们就可以就可以将这个2D matrix看做一个长度为m * n的1D array,我们再对其进行二分搜索即可,时间复杂度为O(log(m * n)),代码如下:
当然我们也可以先进行列的搜索,再进行行的搜索。我们先搜索第一列,如果可以找到target number直接return。否则找到小于target number的最大数,然后从那里开始对行进行搜索,因为如果target number如果存在,其一定在那一行。时间复杂度O(log(m) + log(n)),代码如下:
No comments:
Post a Comment