3264. Final Array State After K Multiplication Operations I using Rust

0

Table of Contents

Problem

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:

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

OperationResult
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

Solution

First attempt : Time complexity O(n2)

impl Solution {
    pub fn get_final_state(nums: Vec<i32>, k: i32, multiplier: i32) -> Vec<i32> {
        let mut output : Vec<i32> = nums.clone();
        
        let mut count : i32 = 0;
        // 
        loop{
            count = count + 1;

            // do magic here
            // find smallest number
            // multiply with multiplier
            let mut index: i32 = 0;
            let mut smallest_pointer : i32 = 0;
            let mut smallest_number :i32 = 2147483647;
            for &num in &output{

                if(num < smallest_number){
                    smallest_number = num;
                    smallest_pointer = index;
                }
                index = index + 1;
            }
            output[smallest_pointer as usize] = smallest_number * multiplier;
            if(count >= k){ 
                break; 
                }
        }
        return output;
    }
}

Leave a Comment

Skip to content