From 10eb44bde3af0891caf1e5df5c6736f53b787a0a Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Mon, 16 Dec 2024 01:59:39 -0700 Subject: 3264. final array state after k multiplication operations 1 --- final_arr_state_k_mult1.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 final_arr_state_k_mult1.py (limited to 'final_arr_state_k_mult1.py') diff --git a/final_arr_state_k_mult1.py b/final_arr_state_k_mult1.py new file mode 100644 index 0000000..caf69ac --- /dev/null +++ b/final_arr_state_k_mult1.py @@ -0,0 +1,36 @@ +# 3264. Final Array State After K Multiplication Operations I +import heapq + +""" +you are given an integer array 'nums', an integer 'k', and an integer +'multiplier'. you need to perform 'k' operations on 'nums'. in each +operation, find the minimum value 'x' in 'nums'. if there are multiple +occurences of the minimum value, select the one that appears first. replace +the selected minimum value 'x' with 'x multiplier'. return an integer array +denoting the final state of 'nums' after performing all 'k' operations +""" + + +class Solution(object): + def getFinalState(self, nums, k, multiplier): + """ + :type nums: List[int] + :type k: int + :type multiplier: int + :rtype: List[int] + """ + n = len(nums) + pq = [(nums[i], i) for i in range(n)] + heapq.heapify(pq) + while k > 0: + i, j = heapq.heappop(pq) + nums[j] = i * multiplier + heapq.heappush(pq, (i * multiplier, j)) + k -= 1 + return nums + + +if __name__ == "__main__": + obj = Solution() + print(obj.getFinalState(nums=[2, 1, 3, 5, 6], k=5, multiplier=2)) + print(obj.getFinalState(nums=[1, 2], k=3, multiplier=4)) -- cgit v1.2.3