1167. Minimum Cost to Connect Sticks
Greedy + Huffman Coding
Time Complexity = O(nlongn) Space Complecity = O(n)
class Solution {
public int connectSticks(int[] sticks) {
PriorityQueue<Integer> minHeap = new PriorityQueue();
for (int stick : sticks) {
minHeap.offer(stick);
}
int cost = 0;
while (minHeap.size() > 1) {
int curCost = minHeap.poll() + minHeap.poll();
cost += curCost;
minHeap.offer(curCost);
}
return cost;
}
}