题解 | #在行列都排好序的矩阵中找指定的数#

在行列都排好序的矩阵中找指定的数

http://www.nowcoder.com/practice/b929be9dbbaa489a91afa3fec195c228

首先,如果直接采用遍历数组的方式会导致时间复杂度为O(M*N),但是题目要求时间复杂度为O(M+N),所以要从矩阵已经排好序这一点出发,假设从左往右,从上往下都为升序;如果左上角的数小于目标数,那么往右和往下都是往数值大的方向,但是有两个方向,不好操作;如果左下角的数小于目标数,那么往右是往数值大的唯一方向,可以操作。
第一步,比较左下角数值与目标值大小,左下角数值大的话,目标值应该往上找;左下角数值小的话,目标值应该往右找;
第二步,左下角的位置往上和右走一步,继续第一步;直至遍历斜角位置。

可以看出本算法是利用顺序排列,通过比较的方式来选择两个方向中的唯一方向,减少算法的时间复杂度。

全部评论

相关推荐

今天投了小鹏,收到了AI面,大概会问哪些啊?
期末一定及格:总共4个部分,心理测评、行测、然后就是问岗位、对岗位的理解、过往遇到了哪些难点怎么解决,很简单,没有什么特别专业的问题,都是一些综合素质相关的
小鹏汽车AI面6人在聊
点赞 评论 收藏
分享
fRank1e:吓得我不敢去外包了,但是目前也只有外包这一个实习,我还要继续去吗
点赞 评论 收藏
分享
05-09 13:22
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务