From 05a07967597faa2cc06a94c8d63b5a3d10a8f53d Mon Sep 17 00:00:00 2001 From: Monick Date: Sun, 29 Mar 2020 22:42:52 -0700 Subject: [PATCH 1/2] finished --- lib/max_subarray.rb | 34 +++++++++++++++++++++++++++++++--- lib/newman_conway.rb | 19 ++++++++++++++++--- test/max_sub_array_test.rb | 2 +- 3 files changed, 48 insertions(+), 7 deletions(-) diff --git a/lib/max_subarray.rb b/lib/max_subarray.rb index 5204edb..dfeee62 100644 --- a/lib/max_subarray.rb +++ b/lib/max_subarray.rb @@ -2,7 +2,35 @@ # Time Complexity: ? # Space Complexity: ? def max_sub_array(nums) - return 0 if nums == nil - - raise NotImplementedError, "Method not implemented yet!" + return nil if nums == [] + return nums[0] if nums.length == 1 + + # start at first item in array + max_so_far = nums[0] + max_ending_here = 0 + + nums.each do |i| + # extend subarray and get it's total + max_ending_here = max_ending_here + i + # if new total is less than value of just i + if max_ending_here < i + # set new subtoal to index value + max_ending_here = i + end + # if new total is greater than value of just i + if max_so_far < max_ending_here + # set current total to subarray total + max_so_far = max_ending_here + end + end + + return max_so_far + + # which one is larger, return that + # if max_so_far > max_ending_here + # answer = max_so_far + # else + # answer = max_ending_here + # end + # return answer end diff --git a/lib/newman_conway.rb b/lib/newman_conway.rb index 4c985cd..9301454 100644 --- a/lib/newman_conway.rb +++ b/lib/newman_conway.rb @@ -1,7 +1,20 @@ -# Time complexity: ? -# Space Complexity: ? +# Time complexity: O(n) +# Space Complexity: O(n) def newman_conway(num) - raise NotImplementedError, "newman_conway isn't implemented" + raise ArgumentError if num == 0 + results = [] + + i = 1 + while i <= num + if i < 3 + results[i] = 1 + else + results[i] = results[results[i - 1]] + results[i - results[i - 1]] + end + i += 1 + end + + return results.join(" ").lstrip.encode("UTF-8", "US-ASCII") end \ No newline at end of file diff --git a/test/max_sub_array_test.rb b/test/max_sub_array_test.rb index 3253cdf..e27e1ca 100644 --- a/test/max_sub_array_test.rb +++ b/test/max_sub_array_test.rb @@ -1,6 +1,6 @@ require_relative "test_helper" -xdescribe "max subarray" do +describe "max subarray" do it "will work for [-2,1,-3,4,-1,2,1,-5,4]" do # Arrange input = [-2,1,-3,4,-1,2,1,-5,4] From 8e59afa765089bc84572963c042f54fc27826cec Mon Sep 17 00:00:00 2001 From: Monick Date: Sun, 29 Mar 2020 22:43:09 -0700 Subject: [PATCH 2/2] deleted notes --- lib/max_subarray.rb | 8 -------- 1 file changed, 8 deletions(-) diff --git a/lib/max_subarray.rb b/lib/max_subarray.rb index dfeee62..9412881 100644 --- a/lib/max_subarray.rb +++ b/lib/max_subarray.rb @@ -25,12 +25,4 @@ def max_sub_array(nums) end return max_so_far - - # which one is larger, return that - # if max_so_far > max_ending_here - # answer = max_so_far - # else - # answer = max_ending_here - # end - # return answer end