Post

3555 Final Array State After K Multiplication Operations I

3555 Final Array State After K Multiplication Operations I

Final Array State After K Multiplication Operations I image

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:

1
2
Find the **minimum** value x in nums. If there are multiple occurrences 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.

 

Example 1:

Input: nums = [2,1,3,5,6], k = 5, multiplier = 2

Output: [8,4,6,5,6]

Explanation:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
		Operation
		Result

		After operation 1
		[2, 2, 3, 5, 6]

		After operation 2
		[4, 2, 3, 5, 6]

		After operation 3
		[4, 4, 3, 5, 6]

		After operation 4
		[4, 4, 6, 5, 6]

		After operation 5
		[8, 4, 6, 5, 6]

Example 2:

Input: nums = [1,2], k = 3, multiplier = 4

Output: [16,8]

Explanation:

1
2
3
4
5
6
7
8
9
10
11
		Operation
		Result

		After operation 1
		[4, 2]

		After operation 2
		[4, 8]

		After operation 3
		[16, 8]

 

Constraints:

1
2
3
4
1 <= nums.length <= 100
1 <= nums[i] <= 100
1 <= k <= 10
1 <= multiplier <= 5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

class Solution:
    def getFinalState(self, nums: List[int], k: int, multiplier: int) -> List[int]:
        h = []

        for idx, m in enumerate(nums):
            heapq.heappush(h, (m, idx))
        
        while(k > 0):
            (item, idx) = heapq.heappop(h)
            heapq.heappush(h, (item * multiplier , idx))
            k -= 1
        h.sort(key= lambda x : x[1])
        return list(map(lambda x : x[0], h))
        

        



This post is licensed under CC BY 4.0 by the author.