1. 程式人生 > 實用技巧 >1131. 絕對值表示式的最大值

1131. 絕對值表示式的最大值

給你兩個長度相等的整數陣列,返回下面表示式的最大值:

|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

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/maximum-of-absolute-value-expression

其實就是三維曼哈頓距離求最大

class Solution:
    def maxAbsValExpr(self, arr1: List[int], arr2: List[int]) -> int:
        fuhao=[1,-1]
        n=len(arr1)
        dists=[]
        for a in fuhao:
            for b in fuhao:
                
for c in fuhao: maxDist=float('-inf') minDist=float('inf') for i in range(n): dist=arr1[i]*a+arr2[i]*b+i*c maxDist=max(maxDist,dist) minDist=min(minDist,dist) dists.append(maxDist
-minDist) return max(dists)