以下问题是软件研发工程师在面试过程中经常遇到的,因此,在面试之前,你至少需要知道它们的解题思路,最好的情况是:对于每一道题目,你都可以用熟悉的编程语言来编写和调试!
以上题目有一个共性:前M个元素。如果你遇到类似的题目,那么你的第一反应应该是使用堆数据结构。因此,你需要对堆数据结构的基本操作非常了解,比如,如何建立一个堆?如何从堆里取元素并重建堆?如何向堆里添加元素,并重建堆?这些操作的时间复杂度分别是什么?等等。关于堆的基础知识,你可以参考文章-堆(heap)。对于以上问题的编程答案,你可以参考文章-与堆相关的编程问题。
{{ c.user.name }}
{{ c.content }}