From e1015e98eeaa21ed388b91d9d932a2d6bfc29b5b Mon Sep 17 00:00:00 2001 From: Drew Taylor Date: Sun, 23 Jan 2022 23:20:56 -0800 Subject: [PATCH] passing and finished --- lib/max_subarray.py | 14 +++++++++++--- lib/newman_conway.py | 22 +++++++++++++++++----- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/lib/max_subarray.py b/lib/max_subarray.py index 4e892e0..5e67344 100644 --- a/lib/max_subarray.py +++ b/lib/max_subarray.py @@ -2,11 +2,19 @@ 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) + Space Complexity: O(1) """ if nums == None: return 0 if len(nums) == 0: return 0 - pass + + temp_max = 0 + true_max = nums[0] + + for i in range(len(nums)): + temp_max = max(nums[i], temp_max + nums[i]) + true_max = max(true_max, temp_max) + + return true_max diff --git a/lib/newman_conway.py b/lib/newman_conway.py index 70a3353..afae2be 100644 --- a/lib/newman_conway.py +++ b/lib/newman_conway.py @@ -1,10 +1,22 @@ - - # Time complexity: ? # Space Complexity: ? 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" + + nums = [0, 1, 1] + + for i in range (3, num + 1): + nums.append(nums[nums[i-1]] + nums[i - nums[i-1]]) + + return " ".join([str(item) for item in nums[1:num+1]]) \ No newline at end of file