From dc07399c0031515c215739dad9c018ec24c73ba9 Mon Sep 17 00:00:00 2001 From: Erika Chikere Date: Wed, 26 Jan 2022 14:11:01 -0800 Subject: [PATCH] Passes all tests --- lib/max_subarray.py | 24 ++++++++++++++++++------ lib/newman_conway.py | 24 +++++++++++++++++++----- 2 files changed, 37 insertions(+), 11 deletions(-) diff --git a/lib/max_subarray.py b/lib/max_subarray.py index 4e892e0..765f9e4 100644 --- a/lib/max_subarray.py +++ b/lib/max_subarray.py @@ -2,11 +2,23 @@ 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: + if not nums: return 0 - if len(nums) == 0: - return 0 - pass + if max(nums) < 0: + return max(nums) + + #Implementation of Kadane's Algorithm + + maxSum = 0 + currSum = 0 + + for i in range(len(nums)): + currSum = currSum + nums[i] + if(currSum > maxSum): + maxSum = currSum + if(currSum < 0): + currSum = 0 + return maxSum diff --git a/lib/newman_conway.py b/lib/newman_conway.py index 70a3353..c598e58 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("Integer cannot be zero") + + 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]])