Skip to main content
Back to problems
#1131
Medium Algorithms

Maximum of absolute value expression

Array Math
48.6% acceptance
Feb 25, 2026
676
419
Given two arrays of integers with equal lengths, return the maximum value of: |arr1[i] - arr1[j]| + |arr2[i] - arr2[j]| + |i - j| where the maximum is taken over all 0 <= i, j < arr1.length.

Solution

Rust
Time O(n³)
Space O(1)
LeetCode
solution.rs
impl Solution {
  pub fn max_abs_val_expr(arr1: Vec<i32>, arr2: Vec<i32>) -> i32 {
    let n = arr1.len();
    let mut result = 0;
    for s1 in [-1i32, 1] {
      for s2 in [-1i32, 1] {
        for s3 in [-1i32, 1] {
          let mut min_val = i32::MAX;
          let mut max_val = i32::MIN;
          for i in 0..n {
            let v = s1 * arr1[i] + s2 * arr2[i] + s3 * i as i32;
            min_val = min_val.min(v);
            max_val = max_val.max(v);
          }
          result = result.max(max_val - min_val);
        }
      }
    }
    result
  }
}