From cff25df1a9a7a31e947ee27bdb5819333194f53f Mon Sep 17 00:00:00 2001 From: LesMiserables1 Date: Sun, 4 Oct 2020 21:10:49 +0700 Subject: [PATCH 1/3] add maximum subarray --- Arrays/maximum-subarray.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 Arrays/maximum-subarray.py diff --git a/Arrays/maximum-subarray.py b/Arrays/maximum-subarray.py new file mode 100644 index 0000000..795ef5e --- /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 From 2753552e6d32ce7bfcce5227817d83f1f50b0ca7 Mon Sep 17 00:00:00 2001 From: LesMiserables1 Date: Sun, 4 Oct 2020 21:15:13 +0700 Subject: [PATCH 2/3] add minimum subarray --- Arrays/maximum-subarray.py | 2 +- Arrays/minimum-subarray.py | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 Arrays/minimum-subarray.py diff --git a/Arrays/maximum-subarray.py b/Arrays/maximum-subarray.py index 795ef5e..f1fe5a2 100644 --- a/Arrays/maximum-subarray.py +++ b/Arrays/maximum-subarray.py @@ -6,7 +6,7 @@ def maxSubArraySum(a, size): for i in range(0, size): max_ending_here = max_ending_here + a[i] - if (max_so_far < max_ending_here): + if (max_so_far max_ending_here): max_so_far = max_ending_here if max_ending_here < 0: diff --git a/Arrays/minimum-subarray.py b/Arrays/minimum-subarray.py new file mode 100644 index 0000000..08c1687 --- /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("Smallest sum: ", smallestSumSubarr(arr, n)) + \ No newline at end of file From 03d6ccacac5e2902f6701045ee0bcc04b24b8cc3 Mon Sep 17 00:00:00 2001 From: LesMiserables1 Date: Sun, 4 Oct 2020 21:28:35 +0700 Subject: [PATCH 3/3] remove unnecessary space --- Arrays/minimum-subarray.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Arrays/minimum-subarray.py b/Arrays/minimum-subarray.py index 08c1687..55bb1cb 100644 --- a/Arrays/minimum-subarray.py +++ b/Arrays/minimum-subarray.py @@ -17,5 +17,5 @@ def smallestSumSubarr(arr, n): arr = [3, -4, 2, -3, -1, 7, -5] n = len(arr) -print("Smallest sum: ", smallestSumSubarr(arr, n)) +print(smallestSumSubarr(arr, n)) \ No newline at end of file