diff --git a/Arrays/maximum-subarray.py b/Arrays/maximum-subarray.py new file mode 100644 index 0000000..f1fe5a2 --- /dev/null +++ b/Arrays/maximum-subarray.py @@ -0,0 +1,18 @@ +maxint = 9223372036854775807 +def maxSubArraySum(a, size): + + max_so_far = -maxint - 1 + max_ending_here = 0 + + for i in range(0, size): + max_ending_here = max_ending_here + a[i] + if (max_so_far max_ending_here): + max_so_far = max_ending_here + + if max_ending_here < 0: + max_ending_here = 0 + return max_so_far + +a = [-13, -3, -25, -20, -3, -16, -23, -12, -5, -22, -15, -4, -7] +print("Maximum contiguous sum is", maxSubArraySum(a, len(a))) + \ No newline at end of file diff --git a/Arrays/minimum-subarray.py b/Arrays/minimum-subarray.py new file mode 100644 index 0000000..55bb1cb --- /dev/null +++ b/Arrays/minimum-subarray.py @@ -0,0 +1,21 @@ +import sys +def smallestSumSubarr(arr, n): + min_ending_here = sys.maxsize + + min_so_far = sys.maxsize + + for i in range(n): + if (min_ending_here > 0): + min_ending_here = arr[i] + + else: + min_ending_here += arr[i] + + min_so_far = min(min_so_far, min_ending_here) + + return min_so_far + +arr = [3, -4, 2, -3, -1, 7, -5] +n = len(arr) +print(smallestSumSubarr(arr, n)) + \ No newline at end of file