diff --git a/lib/max_subarray.rb b/lib/max_subarray.rb index 5204edb..41c0b72 100644 --- a/lib/max_subarray.rb +++ b/lib/max_subarray.rb @@ -1,8 +1,17 @@ +# Four-space tabs courtesey of github's editor ... doing this one straight in the browser because of internet issues + +def max(num1, num2) + return num1 > num2 ? num1 : num2 +end -# Time Complexity: ? -# Space Complexity: ? def max_sub_array(nums) return 0 if nums == nil - - raise NotImplementedError, "Method not implemented yet!" + + max_now = max = nums[0] + + (1...nums.length).each do |i| + max_now = nums[i] > max_now + nums[i] ? nums[i] : max_now + nums[i] + max = max_now if max_now > max + end + return max end diff --git a/lib/newman_conway.rb b/lib/newman_conway.rb index 4c985cd..2cd7f43 100644 --- a/lib/newman_conway.rb +++ b/lib/newman_conway.rb @@ -1,7 +1,21 @@ +def newman_conway(num) +raise ArgumentError, "must be a natural number" if num <= 0 +return "1" if num == 1 + m = Array.new(num) + m[0] = 0 + m[1] = 1 + m[2] = 1 + output = "1" + count = 3 + + while count <= num + m[count] = m[m[count - 1]] + m[count - m[count - 1]] + count += 1 + end -# Time complexity: ? -# Space Complexity: ? -def newman_conway(num) - raise NotImplementedError, "newman_conway isn't implemented" -end \ No newline at end of file + (2..num).each do |i| + output += "#{m[i]}" + end + return output +end