程序来在Python中查找任何子数组的最大绝对和
假设我们有一个名为nums的数组。我们必须查找子数组[ nums_l,nums_l +1,…,nums_r-1,nums_r]的绝对和为|nums_l + nums_l +1 + … + nums_r-1 + nums_r|。我们必须查找nums的任何子数组的最大绝对和(该子数组可能为空)。
因此,如果输入为nums = [2,-4,-3,2,-6],则输出将为11,因为子数组[2,-4,-3,2]具有最大的绝对子数组和|2 + (-4)+(-3)+ 2 | = 11。
为了解决这个问题,我们将按照以下步骤进行 –
- n:= nums的大小
-
ans:= 0,temp:= 0
-
对于 i 在范围0到n-1之间,执行以下操作
- 如果temp < 0,则
- temp:= 0
- temp:= temp + nums [i]
-
ans:= ans和| temp |的最大值
- 如果temp < 0,则
-
temp:= 0
-
对于 i 在范围0到n-1之间,执行以下操作
- 如果temp> 0,则
- temp:= 0
- temp:= temp + nums [i]
-
ans:= ans和| temp |的最大值
- 如果temp> 0,则
-
返回ans
示例
让我们看一下以下实现以获得更好的理解-