程序从Python中的两个数字列表中查找最大距离对
假设我们有两个数字列表,分别称为A和B,它们的长度相同。我们必须找到所有0≤i <j <n的最大值:| a [i]-a [j] | + | b [i]-b [j] | + | i-j |
因此,如果输入像A = [2,4,10,6] B = [3,4,7,5],那么输出将是14,就像当i = 0和j = 2时,我们得到|。 2-10 | + | 3 -7 | + | 1-3-。
为了解决这个问题,我们将遵循以下步骤-
回答:= 0
n:=一个的大小
对于[[-1,-1),(-1,1),(1,-1),(1,1)]中的每对(s,t)
tmp:= s * a [i] + t * b [i] + i
cur_min:=最小cur_min,tmp
cur_max:= cur_max,tmp的最大值
cur_min:=无穷大
cur_max:=-无穷大
对于0到n范围内的i,执行
ans:= ans的最大值,(cur_max-cur_min)
返回ans
让我们看下面的实现以更好地理解-
示例
class Solution:def solve(self, a, b):
ans = 0
n = len(a)
for s, t in [(-1, -1), (-1, 1), (1, -1), (1, 1)]:
cur_min = float("inf")
cur_max = float("-inf")
for i in range(n):
tmp = s * a[i] + t * b[i] + i
cur_min = min(cur_min, tmp)
cur_max = max(cur_max, tmp)
ans = max(ans, cur_max - cur_min)
return ans
ob = Solution()A = [2, 4, 10, 6]
B = [3, 4, 7, 5]
print(ob.solve(A, B))
输入值
[2, 4, 10, 6],[3, 4, 7, 5]
输出结果
14
以上是 程序从Python中的两个数字列表中查找最大距离对 的全部内容, 来源链接: utcz.com/z/350148.html