diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..9b38853 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "python.testing.pytestArgs": [ + "tests" + ], + "python.testing.unittestEnabled": false, + "python.testing.pytestEnabled": true +} \ No newline at end of file diff --git a/lib/max_subarray.py b/lib/max_subarray.py index 4e892e0..f43e5be 100644 --- a/lib/max_subarray.py +++ b/lib/max_subarray.py @@ -1,12 +1,24 @@ 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: ? - """ + Returns 0 if nums is None or an empty list. + Time Complexity: O(n) + Space Complexity: O(1) +""" if nums == None: return 0 if len(nums) == 0: return 0 - pass + if len(nums) == 1: + return nums[0] + max_sum = nums[0] + current_sum = nums[0] + for i in range(1, len(nums)): + if current_sum + nums[i] > nums[i]: + current_sum += nums[i] + else: + current_sum = nums[i] + if current_sum > max_sum: + max_sum = current_sum + return max_sum \ No newline at end of file diff --git a/lib/newman_conway.py b/lib/newman_conway.py index 70a3353..b2d634b 100644 --- a/lib/newman_conway.py +++ b/lib/newman_conway.py @@ -1,10 +1,20 @@ - - # Time complexity: ? # Space Complexity: ? + + def newman_conway(num): """ Returns a list of the Newman Conway numbers for the given value. Time Complexity: ? Space Complexity: ? """ - pass + nc_nums = [1, 1] + if num < 1: + raise ValueError("Num must be greater than 0.") + for i in range(2, num + 1): + nc_nums.append(nc_nums[nc_nums[i - 1] - 1] + nc_nums[i - nc_nums[i - 1]]) + string_list = [] + for n in nc_nums: + string_list.append(str(n)) + return " ".join(string_list[0:num]) + + # pass \ No newline at end of file