Leetcode专题-215-数组中的第K个最大元素

leetcode链接:
https://leetcode.cn/problems/kth-largest-element-in-an-array/...
解题思路:
使用一个小顶堆来存储当前已经找到的前k大的数,如果遍历到一个新数时,它比堆顶元素大,那么就弹出堆顶元素,将新数加入堆中,保证堆中始终存储前k大的数。最终返回堆顶元素即可。

import ""container/heap"

type TopList []int

func (t TopList)Len()int{
    return len(t)
}
func (t TopList)Swap(i,j int){
      t[i],t[j] = t[j],t[i]
}
func (t TopList)Less(i,j int)bool{
    return  t[i]m[0]{//小顶堆 堆顶元素小于当前元素
                heap.Pop(&m)
                heap.Push(&m,nums[i])
            }
        }
    }
    return m[0]
}

你可能感兴趣的:(go)