Created
December 17, 2024 00:04
-
-
Save igavrysh/9e6bdc767d55aa11a4ba63b8ac77f0a9 to your computer and use it in GitHub Desktop.
3264. Final Array State After K Multiplication Operations I
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
3264. Final Array State After K Multiplication Operations I | |
https://leetcode.com/problems/final-array-state-after-k-multiplication-operations-i | |
Easy | |
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 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: | |
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: | |
Operation Result | |
After operation 1 [4, 2] | |
After operation 2 [4, 8] | |
After operation 3 [16, 8] | |
Constraints: | |
1 <= nums.length <= 100 | |
1 <= nums[i] <= 100 | |
1 <= k <= 10 | |
1 <= multiplier <= 5 | |
*/ | |
class Solution { | |
public int[] getFinalState(int[] nums, int k, int multiplier) { | |
PriorityQueue<int[]> pq = new PriorityQueue<>((int[] p1, int[] p2) -> { | |
if (p1[1] == p2[1]) { | |
return Integer.compare(p1[0], p2[0]); | |
} | |
return Integer.compare(p1[1], p2[1]); | |
}); | |
for (int i = 0; i < nums.length; i++) { | |
pq.offer(new int[]{i, nums[i]}); | |
} | |
while (k > 0) { | |
int[] p = pq.poll(); | |
p[1] = p[1] * multiplier; | |
nums[p[0]] = p[1]; | |
pq.offer(p); | |
k--; | |
} | |
return nums; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment