DEV Community

Cover image for LeetCode — 3264. Final Array State After K Multiplication Operations I
Ben Pereira
Ben Pereira

Posted on

LeetCode — 3264. Final Array State After K Multiplication Operations I

It’s an easy problem with the description being:

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:

OperationResultAfter 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:

OperationResultAfter 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]

Well, for this problem we can separate into three parts:

  1. Iterate k times
  2. Find the smallest number in the list
  3. Update smallest number with multiplier

Let’s also separate each into a method so it’s easier to understand:

class Solution { public int[] getFinalState(int[] nums, int k, int multiplier) { for(int i=0;i<k;i++) { // iterate k operations final int smallestIndex = smallestNumberIndex(nums); nums[smallestIndex] = applyMultiplier(nums[smallestIndex], multiplier); } return nums; } public int smallestNumberIndex(final int[] nums) { int index = 0; int x = nums[index]; for(int i=1;i<nums.length;i++) { if(x > nums[i]) { index = i; x = nums[i]; } } return index; } public int applyMultiplier(final int x, final int multiplier) { return x * multiplier; } } 
Enter fullscreen mode Exit fullscreen mode

Runtime: 1ms, faster than 66.48% of Java online submissions.

Memory Usage: 44.84 MB, less than 72.37% of Java online submissions.

That’s it! If there is anything thing else to discuss feel free to drop a comment, if I missed anything let me know so I can update accordingly.

Until next post! :)

Top comments (0)