這是我在網上找到的示例代碼。func FindBestKElements(nums []int, k int) []int { h := &IntHeap{} for _, val := range nums { // O(N) heap.Push(h, val) // O(log K) if h.Len() > k { heap.Pop(h) // O(log K) } } return func() []int { // O (k log k) result := make([]int, h.Len()) initialLen := h.Len() for i := initialLen; i > 0; i-- { result[i-1] = heap.Pop(h).(int) } return result }()}該函數的 return 語句返回運行匿名函數的結果。我不確定這樣做會給你帶來什么好處。例如,為什么我們不能像下面這樣編寫上述方法?func FindBestKElements(nums []int, k int) []int { h := &IntHeap{} for _, val := range nums { // O(N) heap.Push(h, val) // O(log K) if h.Len() > k { heap.Pop(h) // O(log K) } } result := make([]int, h.Len()) initialLen := h.Len() for i := initialLen; i > 0; i-- { result[i-1] = heap.Pop(h).(int) } return result}
匿名函數返回結果的意義何在?
慕尼黑8549860
2022-08-24 20:19:37