bit version
search for a range
different counting
simple one pass solution
more approaches
add more approaches
update
update