题目:
有N个长度不一的数组,所有的数组都是有序的,请从大到小打印这N个数组整体最大的前K个数。
例如,输入含有N行元素的二维数组可以代表N个一维数组。
219, 405, 538, 845, 971
148, 558
52, 99, 348, 691
再输入整数k=5, 则打印:
Top 5: 971, 845, 691, 558, 538
package main
import (
"container/heap"
"fmt"
"errors"
)
type HeapNode struct {
value int32 //值是什么
arrNum int //来自哪个数组
index int //来自数组的哪个位置
}
type ArrayHeap []*HeapNode
func (arrayheap ArrayHeap) Len() int {
return len(arrayheap)
}
func (arrayheap ArrayHeap) Less(i, j int) bool {
return arrayheap[i].value > arrayheap[j].value //大根堆
}
func (arrayheap ArrayHeap) Swap(i, j int) {
arrayheap[i], arrayheap[j] = arrayheap[j], arrayheap[i]
}
func (arrayheap *ArrayHeap) Push(node interface{
}) {
// n := len(*arrayhea