Thursday, September 18, 2014

Merge k Sorted Lists

Problem

Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.

Idea

如果使用merge 2 sorted lists的方法会TLE,所以这次需要使用堆这个数据结构, 设有k个list, 堆的size O(k), 每次把所有lists的最小元素放入堆中,然后每次取出最小的元素,并把取出元素的下一个放入堆中。当所有元素都取完,则得到结果。

Note

  • C++中如何使用Heap
  • 只有run一次 pop_head(), 那个堆顶的元素才会被放到back中去。
  • STL 重载的方法

  • Solution


    No comments:

    Post a Comment