Minimal and clean examples of data structures and algorithms.
List of Implementations:
.
├── array
│  ├── circular_counter.py
│  ├── flatten.py
│  ├── garage.py
│  ├── longest_non_repeat.py
│  ├── merge_intervals.py
│  ├── missing_ranges.py
│  ├── plus_one.py
│  ├── rotate_array.py
│  ├── summary_ranges.py
│  ├── three_sum.py
│  └── two_sum.py
├── backtrack
│  ├── anagram.py
│  ├── array_sum_combinations.py
│  ├── combination_sum.py
│  ├── expression_add_operators.py
│  ├── factor_combinations.py
│  ├── general_solution.md
│  ├── generate_abbreviations.py
│  ├── generate_parenthesis.py
│  ├── letter_combination.py
│  ├── palindrome_partitioning.py
│  ├── pattern_match.py
│  ├── permute.py
│  ├── permute_unique.py
│  ├── subsets.py
│  └── subsets_unique.py
├── bfs
│  ├── shortest_distance_from_all_buildings.py
│  └── word_ladder.py
├── bit
│  ├── count_ones.py
│  ├── power_of_two.py
│  ├── reverse_bits.py
│  ├── single_number2.py
│  ├── single_number.py
│  └── subsets.py
├── design
│  ├── alarm_system.md
│  ├── all_o_one_ds.md
│  ├── calculator.md
│  ├── excel_table.md
│  ├── LRUcache.md
│  ├── nearby_drivers.md
│  ├── ride_sharing.md
│  ├── task_runner.md
│  └── twitter_feeds.md
├── dfs
│  ├── all_factors.py
│  ├── count_islands.py
│  ├── pacific_atlantic.py
│  ├── sudoku_solver.py
│  └── walls_and_gates.py
├── dp
│  ├── buy_sell_stock.py
│  ├── climbing_stairs.py
│  ├── combination_sum.py
│  ├── house_robber.py
│  ├── longest_increasing.py
│  ├── max_product_subarray.py
│  ├── max_subarray.py
│  ├── num_decodings.py
│  ├── regex_matching.py
│  └── word_break.py
├── graph
│  ├── clone_graph.py
│  ├── find_path.py
│  ├── graph.py
│  └── traversal.py
├── heap
│  ├── merge_sorted_k_lists.py
│  ├── skyline.py
│  └── sliding_window_max.py
├── linkedlist
│  ├── add_two_numbers.py
│  ├── copy_random_pointer.py
│  ├── delete_node.py
│  ├── first_cyclic_node.py
│  ├── is_cyclic.py
│  ├── is_palindrome.py
│  ├── kth_to_last.py
│  ├── linkedlist.py
│  ├── remove_duplicates.py
│  ├── reverse.py
│  ├── rotate_list.py
│  └── swap_in_pairs.py
├── map
│  ├── hashtable.py
│  ├── longest_common_subsequence.py
│  ├── randomized_set.py
│  └── valid_sudoku.py
├── math
│  ├── generate_strobogrammtic.py
│  ├── is_strobogrammatic.py
│  ├── nth_digit.py
│  └── sqrt_precision_factor.py
├── matrix
│  ├── bomb_enemy.py
│  ├── matrix_rotation.txt
│  ├── rotate_image.py
│  ├── sparse_dot_vector.py
│  ├── sparse_mul.py
│  └── spiral_traversal.py
├── queue
│  ├── __init__.py
│  ├── max_sliding_window.py
│  ├── moving_average.py
│  ├── queue.py
│  ├── reconstruct_queue.py
│  └── zigzagiterator.py
├── README.md
├── search
│  ├── binary_search.py
│  ├── count_elem.py
│  ├── first_occurance.py
│  └── last_occurance.py
├── set
│  └── randomized_set.py
├── sort
│  ├── insertion_sort.py
│  ├── meeting_rooms.py
│  ├── merge_sort.py
│  ├── quick_sort.py
│  ├── selection_sort.py
│  ├── sort_colors.py
│  ├── topsort.py
│  └── wiggle_sort.py
├── stack
│  ├── __init__.py
│  ├── __init__.pyc
│  ├── longest_abs_path.py
│  ├── __pycache__
│  │  ├── __init__.cpython-35.pyc
│  │  └── stack.cpython-35.pyc
│  ├── simplify_path.py
│  ├── stack.py
│  ├── stack.pyc
│  └── valid_parenthesis.py
├── string
│  ├── add_binary.py
│  ├── breaking_bad.py
│  ├── decode_string.py
│  ├── encode_decode.py
│  ├── group_anagrams.py
│  ├── int_to_roman.py
│  ├── is_palindrome.py
│  ├── license_number.py
│  ├── make_sentence.py
│  ├── multiply_strings.py
│  ├── one_edit_distance.py
│  ├── rabin_karp.py
│  ├── reverse_string.py
│  ├── reverse_vowel.py
│  ├── reverse_words.py
│  ├── roman_to_int.py
│  └── word_squares.py
├── tmp
│  └── temporary.md
├── tree
│  ├── binary_tree_paths.py
│  ├── bintree2list.py
│  ├── bst
│  │  ├── array2bst.py
│  │  ├── bst_closest_value.py
│  │  ├── BSTIterator.py
│  │  ├── delete_node.py
│  │  ├── is_bst.py
│  │  ├── kth_smallest.py
│  │  ├── lowest_common_ancestor.py
│  │  ├── predecessor.py
│  │  ├── serialize_deserialize.py
│  │  ├── successor.py
│  │  └── unique_bst.py
│  ├── deepest_left.py
│  ├── invert_tree.py
│  ├── is_balanced.py
│  ├── is_subtree.py
│  ├── is_symmetric.py
│  ├── longest_consecutive.py
│  ├── lowest_common_ancestor.py
│  ├── max_height.py
│  ├── max_path_sum.py
│  ├── min_height.py
│  ├── path_sum2.py
│  ├── path_sum.py
│  ├── pretty_print.py
│  ├── same_tree.py
│  ├── traversal
│  │  ├── inorder.py
│  │  ├── level_order.py
│  │  └── zigzag.py
│  ├── tree.py
│  └── trie
│  ├── add_and_search.py
│  └── trie.py
├── tree.md
└── union-find
└── count_islands.py