algorithms
├── arrays
│ ├── delete_nth.py
│ ├── flatten.py
│ ├── garage.py
│ ├── __init__.py
│ ├── josephus.py
│ ├── longest_non_repeat.py
│ ├── max_ones_index.py
│ ├── merge_intervals.py
│ ├── missing_ranges.py
│ ├── move_zeros.py
│ ├── plus_one.py
│ ├── rotate.py
│ ├── summarize_ranges.py
│ ├── three_sum.py
│ └── two_sum.py
├── backtrack
│ ├── add_operators.py
│ ├── anagram.py
│ ├── array_sum_combinations.py
│ ├── combination_sum.py
│ ├── factor_combinations.py
│ ├── find_words.py
│ ├── generate_abbreviations.py
│ ├── generate_parenthesis.py
│ ├── __init__.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
│ ├── add_bitwise_operator.py
│ ├── bit_operation.py
│ ├── bytes_int_conversion.py
│ ├── count_flips_to_convert.py
│ ├── count_ones.py
│ ├── find_difference.py
│ ├── find_missing_number.py
│ ├── flip_bit_longest_sequence.py
│ ├── has_alternative_bit.py
│ ├── __init__.py
│ ├── insert_bit.py
│ ├── power_of_two.py
│ ├── remove_bit.py
│ ├── reverse_bits.py
│ ├── single_number2.py
│ ├── single_number3.py
│ ├── single_number.py
│ ├── subsets.py
│ └── swap_pair.py
├── calculator
│ └── math_parser.py
├── 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
│ ├── coin_change.py
│ ├── combination_sum.py
│ ├── egg_drop.py
│ ├── fib.py
│ ├── house_robber.py
│ ├── job_scheduling.py
│ ├── knapsack.py
│ ├── longest_increasing.py
│ ├── matrix_chain_order.py
│ ├── max_product_subarray.py
│ ├── max_subarray.py
│ ├── min_cost_path.py
│ ├── num_decodings.py
│ ├── regex_matching.py
│ ├── rod_cut.py
│ └── word_break.py
├── graph
│ ├── checkDiGraphStronglyConnected.py
│ ├── clone_graph.py
│ ├── cycle_detection.py
│ ├── dijkstra.py
│ ├── find_all_cliques.py
│ ├── find_path.py
│ ├── graph.py
│ ├── __init__.py
│ ├── markov_chain.py
│ ├── minimum_spanning_tree.py
│ ├── pathBetweenTwoVerticesInDiGraph.py
│ ├── satisfiability.py
│ ├── tarjan.py
│ ├── Transitive_Closure_DFS.py
│ └── traversal.py
├── heap
│ ├── binary_heap.py
│ ├── __init__.py
│ ├── merge_sorted_k_lists.py
│ ├── skyline.py
│ └── sliding_window_max.py
├── __init__.py
├── iterables
│ ├── __init__.py
│ └── convolved.py
├── linkedlist
│ ├── add_two_numbers.py
│ ├── copy_random_pointer.py
│ ├── delete_node.py
│ ├── first_cyclic_node.py
│ ├── __init__.py
│ ├── intersection.py
│ ├── is_cyclic.py
│ ├── is_palindrome.py
│ ├── is_sorted.py
│ ├── kth_to_last.py
│ ├── linkedlist.py
│ ├── merge_two_list.py
│ ├── partition.py
│ ├── remove_duplicates.py
│ ├── remove_range.py
│ ├── reverse.py
│ ├── rotate_list.py
│ └── swap_in_pairs.py
├── map
│ ├── hashtable.py
│ ├── longest_common_subsequence.py
│ ├── randomized_set.py
│ ├── separate_chaining_hashtable.py
│ └── valid_sudoku.py
├── maths
│ ├── base_conversion.py
│ ├── combination.py
│ ├── extended_gcd.py
│ ├── factorial.py
│ ├── gcd.py
│ ├── generate_strobogrammtic.py
│ ├── __init__.py
│ ├── is_strobogrammatic.py
│ ├── next_bigger.py
│ ├── next_perfect_square.py
│ ├── nth_digit.py
│ ├── prime_check.py
│ ├── primes_sieve_of_eratosthenes.py
│ ├── pythagoras.py
│ ├── rabin_miller.py
│ ├── rsa.py
│ ├── sqrt_precision_factor.py
│ └── summing_digits.py
├── matrix
│ ├── bomb_enemy.py
│ ├── copy_transform.py
│ ├── count_paths.py
│ ├── matrix_rotation.txt
│ ├── rotate_image.py
│ ├── search_in_sorted_matrix.py
│ ├── sparse_dot_vector.py
│ ├── sparse_mul.py
│ ├── spiral_traversal.py
│ └── sudoku_validator.py
├── queues
│ ├── __init__.py
│ ├── max_sliding_window.py
│ ├── moving_average.py
│ ├── priority_queue.py
│ ├── queue.py
│ ├── reconstruct_queue.py
│ └── zigzagiterator.py
├── search
│ ├── binary_search.py
│ ├── find_min_rotate.py
│ ├── first_occurance.py
│ ├── __init__.py
│ ├── jump_search.py
│ ├── last_occurance.py
│ ├── linear_search.py
│ ├── search_insert.py
│ ├── search_range.py
│ ├── search_rotate.py
│ └── two_sum.py
├── set
│ ├── randomized_set.py
│ └── set_covering.py
├── sort
│ ├── bitonic_sort.py
│ ├── bogo_sort.py
│ ├── bubble_sort.py
│ ├── bucket_sort.py
│ ├── cocktail_shaker_sort.py
│ ├── comb_sort.py
│ ├── counting_sort.py
│ ├── gnome_sort.py
│ ├── heap_sort.py
│ ├── __init__.py
│ ├── insertion_sort.py
│ ├── meeting_rooms.py
│ ├── merge_sort.py
│ ├── quick_sort.py
│ ├── radix_sort.py
│ ├── selection_sort.py
│ ├── shell_sort.py
│ ├── sort_colors.py
│ ├── top_sort.py
│ └── wiggle_sort.py
├── stack
│ ├── __init__.py
│ ├── is_consecutive.py
│ ├── is_sorted.py
│ ├── longest_abs_path.py
│ ├── ordered_stack.py
│ ├── remove_min.py
│ ├── simplify_path.py
│ ├── stack.py
│ ├── stutter.py
│ ├── switch_pairs.py
│ └── valid_parenthesis.py
├── strings
│ ├── add_binary.py
│ ├── breaking_bad.py
│ ├── decode_string.py
│ ├── delete_reoccurring.py
│ ├── domain_extractor.py
│ ├── encode_decode.py
│ ├── fizzbuzz.py
│ ├── group_anagrams.py
│ ├── __init__.py
│ ├── int_to_roman.py
│ ├── is_palindrome.py
│ ├── is_rotated.py
│ ├── license_number.py
│ ├── make_sentence.py
│ ├── merge_string_checker.py
│ ├── multiply_strings.py
│ ├── one_edit_distance.py
│ ├── rabin_karp.py
│ ├── reverse_string.py
│ ├── reverse_vowel.py
│ ├── reverse_words.py
│ ├── roman_to_int.py
│ ├── strip_url_params.py
│ ├── validate_coordinates.py
│ └── word_squares.py
├── tree
│ ├── avl
│ │ ├── avl.py
│ │ └── __init__.py
│ ├── binary_tree_paths.py
│ ├── bintree2list.py
│ ├── bst
│ │ ├── array2bst.py
│ │ ├── bst_closest_value.py
│ │ ├── BSTIterator.py
│ │ ├── bst.py
│ │ ├── count_left_node.py
│ │ ├── delete_node.py
│ │ ├── depth_sum.py
│ │ ├── height.py
│ │ ├── is_bst.py
│ │ ├── kth_smallest.py
│ │ ├── lowest_common_ancestor.py
│ │ ├── num_empty.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
│ ├── red_black_tree
│ │ └── red_black_tree.py
│ ├── same_tree.py
│ ├── segment_tree
│ │ └── segment_tree.py
│ ├── traversal
│ │ ├── inorder.py
│ │ ├── level_order.py
│ │ └── zigzag.py
│ ├── tree.py
│ └── trie
│ ├── add_and_search.py
│ └── trie.py
└── union-find
└── count_islands.py
28 directories, 269 files