Guest User

Untitled

a guest
Mar 18th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.43 KB | None | 0 0
  1. ##Subsets
  2.  
  3. #my first attempt
  4. def subsets(set)
  5. return set if set.length == 1
  6. return [[set[0]], [set[1]], set] if set.length == 2
  7. s = subsets(set[1..-1])
  8. [[set[0]]] + s.map{|x| x+[set[0]]} + s
  9. end
  10.  
  11. subsets([1,2,3]).sort_by(&:length)
  12.  
  13.  
  14. # improved...
  15.  
  16. def subsets(set)
  17. return [set] if set.length == 1
  18. ss = subsets(set[1..-1])
  19. head = [set[0]]
  20. [head] + ss.map{ |set| set+head } + ss
  21. end
  22.  
  23. p subsets([1,2,3]).sort_by(&:length)
Add Comment
Please, Sign In to add comment