牛客网剑指offer专题python解答JZ1---JZ12持续刷题中
Posted 大聪明Smart
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客网剑指offer专题python解答JZ1---JZ12持续刷题中相关的知识,希望对你有一定的参考价值。
文章目录
JZ1二维数组中的查找
给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。
解题思路
时间复杂度 O(M + N),空间复杂度 O(1)
若逐行或逐列用二分法遍历,效率太慢了,我们希望可以以对角线的方向去遍历,
对角线方向有4种:
- 从左上角向右下角出发:往左往下的数都是比当前大的,不可用二分法,放弃;
- 从右上角向左下角出发: 往左的数变小,往下的数增大,可用二分法;
- 从左下角向右上角出发:往上的数变小,往右的数增大,可用二分法; <
以上是关于牛客网剑指offer专题python解答JZ1---JZ12持续刷题中的主要内容,如果未能解决你的问题,请参考以下文章