chore(Python): add max sub array sum (#936)

pull/1027/head
BiscuitCandy 2022-10-13 18:08:36 +05:30 committed by GitHub
parent 550e317a63
commit 35c870d05d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 0 deletions

View File

@ -7,6 +7,7 @@
- [Missing Number](arrays/missing_number.py)
- [Remove duplicate items](arrays/remove_duplicates_list.py)
- [Dutch National Flag Algorithm](arrays/dutch_national_flag_algo.py)
- [Max Sub Array Sum](arrays/max_sub_array_sum.py)
## Linked Lists
- [Doubly](linked_lists/doubly.py)

View File

@ -0,0 +1,32 @@
"""
Algorithm Name: Max Sum of Sub Array
Time Complexity: O(n)
Explanation: arr = [3, 2, -4, 9]
at the start of the algorithm
assign current sum (max_sum_curr) = max sum(max_sum) = arr[0]
(for) iterate from arr[1] to arr[n] and do
max_sum_curr = arr[i] if arr[i] > arr[i] + max_sum_curr
else
max_sum_curr = max_sum_curr + arr[i]
max_sum = max_sum if max_sum > max_sum_curr
else
max_sum = max_sum_curr
end
return max_sum
"""
def max_sub_arr_sum(arr):
arr_size = len(arr)
max_sum = arr[0]
max_sum_curr = arr[0]
for i in range(1, arr_size):
max_sum_curr = max(arr[i], max_sum_curr + arr[i])
max_sum = max(max_sum, max_sum_curr)
return max_sum
# print("Enter array of numbers (Ex: 1 2 3 4 for [1, 2, 3, 4])")
arr = [3, 2, -4, 9] # list(map(int, input().split()))
print("Maximum Sub Array Sum is", max_sub_arr_sum(arr))