CTCI Q17.6 O(n)