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