Skip to main content
Back to problems
#2293
Easy Algorithms

Min max game

Array Simulation
64.3% acceptance
Feb 25, 2026
588
33
You are given a 0-indexed integer array nums whose length is a power of 2. Apply the following algorithm on nums: Let n be the length of nums. If n == 1, end the process. Otherwise, create a new 0-indexed integer array newNums of length n / 2. For every even index i where 0 <= i < n / 2, assign the value of newNums[i] as min(nums[2 * i], nums[2 * i + 1]). For every odd index i where 0 <= i < n / 2, assign the value of newNums[i] as max(nums[2 * i], nums[2 * i + 1]). Replace the array nums with newNums. Repeat the entire process starting from step 1. Return the last number that remains in nums after applying the algorithm.

Solution

Rust
Time O(n²)
Space O(n)
LeetCode
solution.rs
impl Solution {
  pub fn min_max_game(mut nums: Vec<i32>) -> i32 {
    while nums.len() > 1 {
      let n = nums.len() / 2;
      let mut new_nums = vec![0; n];
      for i in 0..n {
        if i % 2 == 0 {
          new_nums[i] = nums[2 * i].min(nums[2 * i + 1]);
        } else {
          new_nums[i] = nums[2 * i].max(nums[2 * i + 1]);
        }
      }
      nums = new_nums;
    }
    nums[0]
  }
}