Created
April 20, 2015 20:14
-
-
Save mayfer/f010425fbcdcd9001cfc to your computer and use it in GitHub Desktop.
algorithms and Data structures examples
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def find_index(numbers, number) | |
numbers.each_with_index do |n, i| | |
if n == number | |
return i | |
end | |
end | |
return nil | |
end | |
def find_sum_pairs(numbers, sum) | |
cache = {} | |
numbers.each_with_index do |n, i| | |
target = sum - n | |
if cache.has_key?(target) | |
return i, cache[target] | |
end | |
cache[n] = i | |
end | |
return nil | |
end | |
def find_index_sorted(numbers, number) | |
middle = numbers.size / 2 | |
first = 0 | |
last = numbers.size - 1 | |
while middle != last && middle != first | |
if numbers[middle] == number | |
return middle | |
end | |
puts "middle is #{middle}" | |
puts "first is #{first}" | |
puts "last is #{last}" | |
gets | |
if number > numbers[middle] | |
first = middle | |
middle += (last - middle) / 2 | |
else | |
last = middle | |
middle = middle / 2 | |
end | |
end | |
return nil | |
end | |
# numbers = (1..1000000).step(1).to_a | |
# number = 1100 | |
# puts find_index_sorted(numbers, number).inspect | |
def divide(number, divisor) | |
results = 0 | |
while number >= divisor | |
number -= divisor | |
result += result | |
divisor += divisor | |
end | |
remainder = number | |
return result, remainder | |
end | |
require 'pry' | |
def find_common_rhyme | |
words = File.open('/usr/share/dict/words').read | |
rhymes = Hash.new { [] } | |
most = 0 | |
common_rhyme = nil | |
words.each_line do |word| | |
word = word.strip.downcase | |
rhyme = word[-3..-1] | |
rhymes[rhyme] <<= word | |
if rhymes[rhyme].size > most | |
most = rhymes[rhyme].size | |
common_rhyme = rhyme | |
end | |
end | |
puts common_rhyme | |
puts rhymes[common_rhyme].inspect | |
puts rhymes[common_rhyme].size | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment