Maximal Score After Applying K Operations
MediumArrayGreedyHeap (Priority Queue)
Solution
import { Heap } from '@algorithm/lib';
export function maxKelements(nums: number[], k: number): number {
const heap = new Heap<number>((a, b) => b - a);
nums.forEach((num) => {
heap.push(num);
});
let answer = 0;
for (let i = 0; i < k; i++) {
const score = heap.pop() ?? 0;
heap.push(Math.ceil(score / 3));
answer += score;
}
return answer;
}
Complexity
- Time:
O(NlogN + KlogN)
- Space:
O(N)