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 
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.