Skip to content

Instantly share code, notes, and snippets.

View dkarpenko's full-sized avatar

Denis Karpenko dkarpenko

View GitHub Profile
require 'benchmark'
require "memoize"
include Memoize
UPPER_LIMIT = 1000000
MULTIPLIERS_COUNT = 6
def combinations_count(multipliers_count, upper_limit)
return 1 if multipliers_count == 1
@dkarpenko
dkarpenko / max_consecutive_sum_calculator.rb
Last active December 26, 2015 08:59
Max Consecutive Sum The problem: Find the maximum sum possible from picking a contiguous subsequence of an array. [-1, 5, 6, -2, 20, -50, 4] What is the largest sum of contiguous elements available in this list? In the example above, the maximum sum would be 29: [-1, 5, 6, -2, 20, -50, 4], because (5 + 6 - 2 + 20 = 29). End one element later and…
class MaxConsecutiveSumCalculator
attr_reader :result
def initialize(numbers, debug_steps = false)
raise "Input array shouldn't be nil or empty" if numbers.nil? || numbers.empty?
@original_numbers= numbers.clone
@dkarpenko
dkarpenko / tree_by_level_traversal.rb
Created November 16, 2013 13:48
Binary tree of integers in level order. Level-order printing means printing each row of the tree from left to right, from root row to the deepest row. After each row, print a newline.
class TreeByLevelTraversal
attr_reader :values_by_level
def initialize(root_node)
raise "Graph shouldn't be nil" if root_node.nil?
@values_by_level ={}
traverse(root_node, 0)
end
private