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:
x in nums. If there are multiple occurrences of the minimum value, select the one that appears first.x with x * multiplier.After the k operations, apply modulo 109 + 7 to every value in nums.
Return an integer array denoting the final state of nums after performing all k operations and then applying the modulo.
Example 1:
Input: nums = [2,1,3,5,6], k = 5, multiplier = 2
Output: [8,4,6,5,6]
Explanation:
| 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] |
| After applying modulo | [8, 4, 6, 5, 6] |
Example 2:
Input: nums = [100000,2000], k = 2, multiplier = 1000000
Output: [999999307,999999993]
Explanation:
| Operation | Result |
|---|---|
| After operation 1 | [100000, 2000000000] |
| After operation 2 | [100000000000, 2000000000] |
| After applying modulo | [999999307, 999999993] |
Constraints:
1 <= nums.length <= 1041 <= nums[i] <= 1091 <= k <= 1091 <= multiplier <= 106Utilize a Min-Heap (Priority Queue) to efficiently track the minimum value in the array. After each operation, extract the minimum value, update it, and re-insert it into the heap with the modified value.
The solution uses a min-heap to maintain the minimum element in the array. Initially, each element's value and index are pushed to the heap. The minimum element is removed and updated, then reinserted into the heap, ensuring the heap property is maintained. This process continues, reducing k until it reaches zero. Finally, the solution applies a modulo operation to each element in the array as required.
C++
Time Complexity: O(k * log(n)) where n is the length of nums.
Space Complexity: O(n) for the heap.
In this approach, iteratively find and replace the minimum value directly in the array without any auxiliary data structures, scanning the array each time an operation is performed.
This algorithm directly manipulates the input array, avoiding priority queues or auxiliary data structures. In each of the k iterations, it locates the minimum value in the array by a linear search and updates it by multiplying it with multiplier.
C
Time Complexity: O(k * n), where n is the length of nums.
Space Complexity: O(1), as we do not use extra space for manipulation.
| Approach | Complexity |
|---|---|
| Min-Heap Method | Time Complexity: O(k * log(n)) where n is the length of nums. |
| Direct Array Manipulation | Time Complexity: O(k * n), where n is the length of nums. |
Leetcode Weekly Contest 412 | Video Solutions - A to D | by Viraj Chandra | TLE Eliminators • TLE Eliminators - by Priyansh • 4,800 views views
Watch 9 more video solutions →Practice Final Array State After K Multiplication Operations II with our built-in code editor and test cases.
Practice on FleetCodePractice this problem
Open in Editor