★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ?微信公众号:山青咏芝(shanqingyongzhi) ?博客园地址:山青咏芝(https://www.cnblogs.com/strength
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
?微信公众号:山青咏芝(shanqingyongzhi)
?博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
?GitHub地址:https://github.com/strengthen/LeetCode
?原文地址:https://www.cnblogs.com/strengthen/p/11223723.html
?如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
?原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
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
.
Example 1:
Input: arr1 = [1,2,3,4], arr2 = [-1,4,5,6] Output: 13
Example 2:
Input: arr1 = [1,-2,-5,0,10], arr2 = [0,-2,-1,-7,-4] Output: 20
Constraints:
2 <= arr1.length == arr2.length <= 40000
-10^6 <= arr1[i], arr2[i] <= 10^6
给你两个长度相等的整数数组,返回下面表达式的最大值:
|arr1[i] - arr1[j]| + |arr2[i] - arr2[j]| + |i - j|
其中下标 i
,j
满足 0 <= i, j < arr1.length
。
示例 1:
输入:arr1 = [1,2,3,4], arr2 = [-1,4,5,6] 输出:13
示例 2:
输入:arr1 = [1,-2,-5,0,10], arr2 = [0,-2,-1,-7,-4] 输出:20
提示:
2 <= arr1.length == arr2.length <= 40000
-10^6 <= arr1[i], arr2[i] <= 10^6
Runtime: 200 ms Memory Usage: 21.3 MB
1 class Solution { 2 func maxAbsValExpr(_ arr1: [Int], _ arr2: [Int]) -> Int { 3 var n:Int = arr1.count 4 var ans:Int = 0 5 var maxmm:Int = Int.min / 2 6 var maxmp:Int = Int.min / 2 7 var maxpm:Int = Int.min / 2 8 var maxpp:Int = Int.min / 2 9 for i in 0..<n 10 { 11 maxmm = max(maxmm, -arr1[i] - arr2[i]-i) 12 maxmp = max(maxmp, -arr1[i] + arr2[i]-i) 13 maxpm = max(maxpm, arr1[i] - arr2[i]-i) 14 maxpp = max(maxpp, arr1[i] + arr2[i]-i) 15 ans = max(ans, maxmm + arr1[i] + arr2[i]+i) 16 ans = max(ans, maxmp + arr1[i] - arr2[i]+i) 17 ans = max(ans, maxpm - arr1[i] + arr2[i]+i) 18 ans = max(ans, maxpp - arr1[i] - arr2[i]+i) 19 } 20 return ans 21 } 22 }