📜  数组中最大平衡和的Python3程序

📅  最后修改于: 2022-05-13 01:54:36.167000             🧑  作者: Mango

# 数组中最大平衡和的Python3程序

``````Input : arr[] = {-1, 2, 3, 0, 3, 2, -1}
Output : 4
Prefix sum of arr[0..3] =
Suffix sum of arr[3..6]

Input : arr[] = {-2, 5, 3, 1, 2, 6, -4, 2}
Output : 7
Prefix sum of arr[0..3] =
Suffix sum of arr[3..7]``````

##### Python3
``````# Python 3 program to find maximum
# equilibrium sum.
import sys

# Function to find maximum equilibrium sum.
def findMaxSum(arr, n):
res = -sys.maxsize - 1
for i in range(n):
prefix_sum = arr[i]
for j in range(i):
prefix_sum += arr[j]

suffix_sum = arr[i]
j = n - 1
while(j > i):
suffix_sum += arr[j]
j -= 1
if (prefix_sum == suffix_sum):
res = max(res, prefix_sum)

return res

# Driver Code
if __name__ == '__main__':
arr = [-2, 5, 3, 1, 2, 6, -4, 2]
n = len(arr)
print(findMaxSum(arr, n))

# This code is contributed by
# Surendra_Gangwar``````

##### Python3
``````# Python3 program to find
# maximum equilibrium sum.

# Function to find maximum
# equilibrium sum.
def findMaxSum(arr, n):

# Array to store prefix sum.
preSum = [0 for i in range(n)]

# Array to store suffix sum.
suffSum = [0 for i in range(n)]

# Variable to store maximum sum.
ans = -10000000

# Calculate prefix sum.
preSum[0] = arr[0]

for i in range(1, n):

preSum[i] = preSum[i - 1] + arr[i]

# Calculate suffix sum and compare
# it with prefix sum. Update ans
# accordingly.
suffSum[n - 1] = arr[n - 1]
if (preSum[n - 1] == suffSum[n - 1]):
ans = max(ans, preSum[n - 1])

for i in range(n - 2, -1, -1):
suffSum[i] = suffSum[i + 1] + arr[i]
if (suffSum[i] == preSum[i]):
ans = max(ans, preSum[i])

return ans

# Driver Code
if __name__=='__main__':

arr = [-2, 5, 3, 1,2, 6, -4, 2]
n = len(arr)
print(findMaxSum(arr, n))

# This code i contributed by pratham76``````

##### Python3
``````# Python3 program to find
# maximum equilibrium sum.
import sys

# Function to find
# maximum equilibrium sum.
def findMaxSum(arr,n):

ss = sum(arr)
prefix_sum = 0
res = -sys.maxsize

for i in range(n):
prefix_sum += arr[i]

if prefix_sum == ss:
res = max(res, prefix_sum);

ss -= arr[i];

return res

# Driver code
if __name__=="__main__":

arr = [ -2, 5, 3, 1,
2, 6, -4, 2 ]
n = len(arr)

print(findMaxSum(arr, n))

# This code is contributed by rutvik_56``````

``7``

## Python3

``````# Python3 program to find
# maximum equilibrium sum.

# Function to find maximum
# equilibrium sum.
def findMaxSum(arr, n):

# Array to store prefix sum.
preSum = [0 for i in range(n)]

# Array to store suffix sum.
suffSum = [0 for i in range(n)]

# Variable to store maximum sum.
ans = -10000000

# Calculate prefix sum.
preSum[0] = arr[0]

for i in range(1, n):

preSum[i] = preSum[i - 1] + arr[i]

# Calculate suffix sum and compare
# it with prefix sum. Update ans
# accordingly.
suffSum[n - 1] = arr[n - 1]
if (preSum[n - 1] == suffSum[n - 1]):
ans = max(ans, preSum[n - 1])

for i in range(n - 2, -1, -1):
suffSum[i] = suffSum[i + 1] + arr[i]
if (suffSum[i] == preSum[i]):
ans = max(ans, preSum[i])

return ans

# Driver Code
if __name__=='__main__':

arr = [-2, 5, 3, 1,2, 6, -4, 2]
n = len(arr)
print(findMaxSum(arr, n))

# This code i contributed by pratham76
``````

``7``

## Python3

``````# Python3 program to find
# maximum equilibrium sum.
import sys

# Function to find
# maximum equilibrium sum.
def findMaxSum(arr,n):

ss = sum(arr)
prefix_sum = 0
res = -sys.maxsize

for i in range(n):
prefix_sum += arr[i]

if prefix_sum == ss:
res = max(res, prefix_sum);

ss -= arr[i];

return res

# Driver code
if __name__=="__main__":

arr = [ -2, 5, 3, 1,
2, 6, -4, 2 ]
n = len(arr)

print(findMaxSum(arr, n))

# This code is contributed by rutvik_56
``````

``7``