pdd笔试第四题ac思路

没怎么看到有人分享第四题解法,那我说说我的吧。
输入n,m。则最大值为nm。下一个值只会为(n-1)*m或n(m-1)。这时候容易想到一个思路就是把(n-1)m 和 n(m-1)都加到堆中。如下所示就是把一个数的上方和左方的数加到堆中,但这样有一个重复添加的问题,如位于(1,2)处的6会被8和9都加到堆中。那么如何解决这个问题呢?
1 2 3 4
2 4 6 8
3 6 9 12
思路很简单。当从堆中取出一个数后,将其上方的数加入堆,当该数是最后一行的数时,将其左侧的数到堆中。然后继续从堆顶取数,直到取到第k个。

已AC。

#笔试题目##拼多多#
全部评论
这个题用小根堆全扫描一下,全部的数都扫描一遍不行吗
点赞 回复 分享
发布于 2019-09-01 17:46
初始堆是最后一行?我也是这么做的,只过了80
点赞 回复 分享
发布于 2019-09-01 19:27
这个思路是有问题的,居然能过。我最开始也是想到这个,但是找到反例放弃了
点赞 回复 分享
发布于 2019-09-01 17:38
leetcode 668,二分check
点赞 回复 分享
发布于 2019-09-01 17:35
100吗
点赞 回复 分享
发布于 2019-09-01 17:34
k最大是m*n,复杂度10^9,楼主是ac了么
点赞 回复 分享
发布于 2019-09-01 17:34

相关推荐

11-13 12:02
门头沟学院 Java
这个名称和你无缘:好骂,好骂 别学计算机就行了
点赞 评论 收藏
分享
野猪不是猪🐗:还是太卑微了,什么叫放弃本次面试应该说经过评估,贵公司与自己不匹配,决定不再推进后续流程
点赞 评论 收藏
分享
评论
点赞
12
分享

创作者周榜

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