Software-based solutions are mathematical discoveries. They utilize the fact that processor is faster than the memory, or rather memory access is more time-consuming than processor cycle.
Among most glaring omissions, we are avoiding sorting and binary search algorithms.