Appearance
Maximum Absolute Difference
Problem Description
You are given an array of N integers, A1, A2 ,..., AN.
Return maximum value of f(i, j) for all 1 ≤ i, j ≤ N.
f(i, j) is defined as |A[i] - A[j]| + |i - j|, where |x| denotes absolute value of x.
Problem Constraints
1 <= |A| <= 10^5
-10^9 <= Ai <= 10^9
Input Format
The first argument is an integer array A.
Output Format
Return an integer equal to the maximum value of f(i, j)
Example Input
A = [1, 3, -1]
Example Output
5
Example Explanation
Given A = [1, 3, -1],
f(1, 1) = f(2, 2) = f(3, 3) = 0
f(1, 2) = f(2, 1) = |1 - 3| + |1 - 2| = 3
f(1, 3) = f(3, 1) = |1 - (-1)| + |1 - 3| = 4
f(2, 3) = f(3, 2) = |3 - (-1)| + |2 - 3| = 5
The maximum value is 5, which is of f(2, 3)
Solution
swift
import Foundation
class Solution {
func maxArr(_ A: inout [Int]) -> Int {
let len = A.count
var result = 0
var min1 = Int.max
var max1 = Int.min
var min2 = Int.max
var max2 = Int.min
for i in 0..<len {
var v = A[i] + i
if v < min1 {
min1 = v
}
if v > max1 {
max1 = v
}
v = A[i] - i
if v < min2 {
min2 = v
}
if v > max2 {
max2 = v
}
}
if (max1 - min1 ) > result {
result = max1 - min1
}
if (max2 - min2 ) > result {
result = max2 - min2
}
// for i in 0..<len {
// for j in (i+1)..<len {
// let v = abs(A[i] - A[j]) + j - i
// if v > result {
// result = v
// }
// }
// }
return result
}
}