Given n sorted arrays, find the kth element among all elements in these arrays.
这道题的核心是把多个已经排好序的数组合并视为一个整体有序序列,再去找第 k 个元素。最直接的做法是使用最小堆:先把每个数组的首元素放入堆中,每次弹出当前最小值并把它所在数组的下一个元素加入堆,直到弹出第 k 次为止。这样可以避免真正把所有元素合并到一个大数组里,时间复杂度通常为 O(k log n),其中 n 是数组个数;如果元素总数很大,这种做法非常适合面试和 OA 场景。如果题目还要求更进一步优化,也可以讨论二分查找思路,但最稳妥的解法通常是堆。
正文完