Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 14 additions & 5 deletions lib/max_subarray.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@

# Time Complexity: ?
# Space Complexity: ?
# Time Complexity: O(n) where n is the number of items in the array
# Space Complexity: O(1)
def max_sub_array(nums)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

return 0 if nums == nil

raise NotImplementedError, "Method not implemented yet!"
return 0 if nums == nil
return nil if nums.length == 0
max_sum = nums[0]
sum = 0

nums.length.times do |i|
sum = [nums[i], sum + nums[i]].max
if sum > max_sum
max_sum = sum
end
end
return max_sum
end
31 changes: 28 additions & 3 deletions lib/newman_conway.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,32 @@


# Time complexity: ?
# Space Complexity: ?
# Time complexity: O(n), where n is the input number
# Space Complexity: O(n), where n is the input number
def newman_conway(num)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

raise NotImplementedError, "newman_conway isn't implemented"
raise ArgumentError, "input must be greater than 0" if num < 1

storage_hash = {
1 => 1,
2 => 1
}
Comment on lines +8 to +11

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just curious why use a hash instead of an array? Just because 0 is unused?


results = []
if num <= 2
num.times do |i|
results.push(storage_hash[i + 1])
end
else
2.times do |i|
results.push(storage_hash[i + 1])
end
end
n = 3
while n <= num
prev = storage_hash[n - 1]
storage_hash[n] = storage_hash[prev] + storage_hash[n - prev]
results.push "#{storage_hash[n]}"
n += 1
end

return results.join(" ")
end
2 changes: 1 addition & 1 deletion test/max_sub_array_test.rb
Original file line number Diff line number Diff line change
@@ -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]
Expand Down