diff --git a/lectures/23_priority_queues_II/README.md b/lectures/23_priority_queues_II/README.md index 98c38c2..01addc5 100644 --- a/lectures/23_priority_queues_II/README.md +++ b/lectures/23_priority_queues_II/README.md @@ -122,5 +122,8 @@ organized heap data, but incur a O(n log n) cost. Why? ## 23.10 Leetcode Exercises -- [Leetcode problem 912: Sort an Array](https://leetcode.com/problems/sort-an-array/). Solution: [p912_heapsort_array.cpp](../../leetcode/p912_heapsort_array.cpp). -Solution 2: [p912_heapsort_array_heapify.cpp](../../leetcode/p912_heapsort_array_heapify.cpp). Solution 3 - min heap: [p912_heapsort_array_min_heap.cpp](../../leetcode/p912_heapsort_array_min_heap.cpp). +- [Leetcode problem 912: Sort an Array](https://leetcode.com/problems/sort-an-array/). + - Solution: [p912_heapsort_array.cpp](../../leetcode/p912_heapsort_array.cpp). + - Solution 2: [p912_heapsort_array_heapify.cpp](../../leetcode/p912_heapsort_array_heapify.cpp). + - Solution 3: - min heap: [p912_heapsort_array_min_heap.cpp](../../leetcode/p912_heapsort_array_min_heap.cpp). + - Solution 4: - min heap, with functor: [p912_heapsort_array_functor.cpp](../../leetcode/p912_heapsort_array_functor.cpp). diff --git a/leetcode/p912_heapsort_array_functor.cpp b/leetcode/p912_heapsort_array_functor.cpp new file mode 100644 index 0000000..bb52eb3 --- /dev/null +++ b/leetcode/p912_heapsort_array_functor.cpp @@ -0,0 +1,27 @@ +class cmp{ +public: + // this is how we overload the function call operator, and this has to a public method. + bool operator() (int A, int B){ + return (A > B); + } +}; + +class Solution { +public: + vector sortArray(vector& nums) { + vector result; + priority_queue, cmp> pq; + int size = nums.size(); + // build the priority queue, which is now a min heap + for(int i=0;i