From 9cf0d9fde0160ba47ff91e5c16458a5d2364489a Mon Sep 17 00:00:00 2001 From: roza ajema Date: Sat, 4 Jun 2022 13:39:27 -0700 Subject: [PATCH] adding functionality for max_subarray method and newman_conway method --- lib/max_subarray.py | 16 +++++++++++++--- lib/newman_conway.py | 26 ++++++++++++++++++++------ 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/lib/max_subarray.py b/lib/max_subarray.py index 4e892e0..497f324 100644 --- a/lib/max_subarray.py +++ b/lib/max_subarray.py @@ -2,11 +2,21 @@ def max_sub_array(nums): """ Returns the max subarray of the given list of numbers. Returns 0 if nums is None or an empty list. - Time Complexity: ? - Space Complexity: ? + Time Complexity: O(n^2) + Space Complexity: O(1) """ if nums == None: return 0 if len(nums) == 0: return 0 - pass + max_overall = nums[0] + max_so_far = nums[0] + for index, num in enumerate(nums): + so_far_sum = 0 + for each in nums[:index + 1]: + so_far_sum += each + max_so_far = max(so_far_sum, num) + max_overall = max (max_overall, max_so_far) + + return max_overall + diff --git a/lib/newman_conway.py b/lib/newman_conway.py index 70a3353..3556eb4 100644 --- a/lib/newman_conway.py +++ b/lib/newman_conway.py @@ -1,10 +1,24 @@ - -# Time complexity: ? -# Space Complexity: ? +# Time complexity: O(n) +# Space Complexity: O(n) def newman_conway(num): """ Returns a list of the Newman Conway numbers for the given value. - Time Complexity: ? - Space Complexity: ? + Time Complexity: O(n) + Space Complexity: O(n) """ - pass + if num == 0: + raise ValueError + if num == 1: + return "1" + if num == 2: + return "1 1" + initial_array = [0, 1, 1] + for i in range(3, num + 1): + r = initial_array[initial_array[i-1]]+initial_array[i-initial_array[i-1]] + initial_array.append(r) + # remove the first 0 using list slices and change elements to str + stringified_array = [] + for elem in initial_array[1:]: + stringified_array.append(str(elem)) + return " ".join(stringified_array) +