牛客网剑指offer专题python解答JZ1---JZ12持续刷题中

Posted 大聪明Smart

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客网剑指offer专题python解答JZ1---JZ12持续刷题中相关的知识,希望对你有一定的参考价值。

JZ1二维数组中的查找

给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。

解题思路
时间复杂度 O(M + N),空间复杂度 O(1)
若逐行或逐列用二分法遍历,效率太慢了,我们希望可以以对角线的方向去遍历,
对角线方向有4种:

  1. 从左上角向右下角出发:往左往下的数都是比当前大的,不可用二分法,放弃;
  2. 从右上角向左下角出发: 往左的数变小,往下的数增大,可用二分法;
  3. 从左下角向右上角出发:往上的数变小,往右的数增大,可用二分法;
  4. <

以上是关于牛客网剑指offer专题python解答JZ1---JZ12持续刷题中的主要内容,如果未能解决你的问题,请参考以下文章

牛客网剑指offer专题python解答JZ1---JZ12持续刷题中

牛客网剑指Offer习题集题解0

牛客网剑指offer-Java

手机牛客在线编程入口在哪

剑指offer得意之作——顺时针打印矩阵

剑指Offer(牛客网) 矩形覆盖