Skip to main content
Back to problems
#1243
Easy Algorithms

Array transformation

Array Simulation
53.7% acceptance
Mar 31, 2026
154
73

No description available.

Solution

Rust
Time O(n²)
Space O(1)
LeetCode
solution.rs
impl Solution {
  pub fn transform_array(arr: Vec<i32>) -> Vec<i32> {
    let mut arr = arr;
    loop {
      let mut changed = false;
      let mut new_arr = arr.clone();
      for i in 1..arr.len() - 1 {
        if arr[i] < arr[i - 1] && arr[i] < arr[i + 1] {
          new_arr[i] += 1;
          changed = true;
        } else if arr[i] > arr[i - 1] && arr[i] > arr[i + 1] {
          new_arr[i] -= 1;
          changed = true;
        }
      }
      arr = new_arr;
      if !changed { break; }
    }
    arr
  }
}