gitextract_pg3fa3pn/ ├── .editorconfig ├── .gitignore ├── .travis.yml ├── README.md ├── bin/ │ ├── test_javascript.js │ └── test_python.py ├── codewars/ │ ├── delete_occurrences_of_an_element_if_it_occurs_more_than_n_times.js │ ├── double_cola.js │ ├── iq_test.js │ ├── is_a_number_prime.js │ ├── multiply.js │ ├── rectangle_into_squares.js │ ├── reverse_words.js │ ├── simple_encryption_1_alternating_split.js │ ├── sudoku_solution_validator.js │ ├── take_a_ten_minute_walk.js │ ├── tribonacci_sequence.js │ ├── unique_in_order.js │ └── who_likes_it.js ├── leetcode/ │ ├── 101_symmetric_tree.py │ ├── 105_construct_binary_tree_from_preorder_and_inorder_traversal.py │ ├── 108_convert_sorted_array_to_binary_search_tree.py │ ├── 112_path_sum.py │ ├── 113_path_sum_ii.py │ ├── 116_populating_next_right_pointers_in_each_node.py │ ├── 117_populating_next_right_pointers_in_each_node_ii.py │ ├── 118_pascal_s_triangle.py │ ├── 11_container_with_most_water.py │ ├── 124_binary_tree_maximum_path_sum.py │ ├── 134_gas_station.py │ ├── 136_single_number.py │ ├── 149_max_points_on_a_line.py │ ├── 14_longest_common_prefix.py │ ├── 150_evaluate_reverse_polish_notation.py │ ├── 157_read_n_characters_given_read4.py │ ├── 160_intersection_of_two_linked_lists.py │ ├── 165_compare_version_numbers.py │ ├── 166_fraction_to_recurring_decimal.py │ ├── 169_majority_element.py │ ├── 171_excel_sheet_column_number.py │ ├── 172_factorial_trailing_zeroes.py │ ├── 174_dungeon_game.py │ ├── 179_largest_number.py │ ├── 17_letter_combinations_of_a_phone_number.py │ ├── 190_reverse_bits.py │ ├── 191_number_of_1_bits.py │ ├── 19_remove_nth_node_from_end_of_list.py │ ├── 202_happy_number.py │ ├── 204_count_primes.py │ ├── 208_implement_trie_prefix_tree.py │ ├── 20_valid_parentheses.py │ ├── 215_kth_largest_element_in_an_array.py │ ├── 217_contains_duplicate.py │ ├── 218_the_skyline_problem.py │ ├── 224_basic_calculator.py │ ├── 227_basic_calculator_ii.py │ ├── 229_majority_element_ii.py │ ├── 22_generate_parentheses.py │ ├── 230_kth_smallest_element_in_a_bst.py │ ├── 234_palindrome_linked_list.py │ ├── 235_lowest_common_ancestor_of_a_binary_search_tree.py │ ├── 236_lowest_common_ancestor_of_a_binary_tree.py │ ├── 237_delete_node_in_a_linked_list.py │ ├── 242_valid_anagram.py │ ├── 269_alien_dictionary.py │ ├── 277_find_the_celebrity.py │ ├── 280_wiggle_sort.py │ ├── 282_expression_add_operators.py │ ├── 285_inorder_successor_in_bst.py │ ├── 288_unique_word_abbreviation.py │ ├── 289_game_of_life.py │ ├── 295_find_median_from_data_stream.py │ ├── 299_bulls_and_cows.py │ ├── 303_range_sum_query_immutable.py │ ├── 304_range_sum_query_2d_immutable.py │ ├── 307_range_sum_query_mutable.py │ ├── 308_range_sum_query_2d_mutable.py │ ├── 30_substring_with_concatenation_of_all_words.py │ ├── 315_count_of_smaller_numbers_after_self.py │ ├── 323_number_of_connected_components_in_an_undirected_graph.py │ ├── 324_wiggle_sort_ii.py │ ├── 326_power_of_three.py │ ├── 329_longest_increasing_path_in_a_matrix.py │ ├── 334_increasing_triplet_subsequence.py │ ├── 33_search_in_rotated_sorted_array.py │ ├── 340_longest_substring_with_at_most_k_distinct_characters.py │ ├── 344_reverse_string.py │ ├── 347_top_k_frequent_elements.py │ ├── 348_design_tic_tac_toe.py │ ├── 353_design_snake_game.py │ ├── 36_valid_sudoku.py │ ├── 377_combination_sum_iv.py │ ├── 378_kth_smallest_element_in_a_sorted_matrix.py │ ├── 37_sudoku_solver.py │ ├── 380_insert_delete_getrandom_o1.py │ ├── 381_insert_delete_getrandom_o1_duplicates_allowed.py │ ├── 382_linked_list_random_node.py │ ├── 384_shuffle_an_array.py │ ├── 386_lexicographical_numbers.py │ ├── 387_first_unique_character_in_a_string.py │ ├── 388_longest_absolute_file_path.py │ ├── 389_find_the_difference.py │ ├── 38_count_and_say.py │ ├── 390_elimination_game.py │ ├── 391_perfect_rectangle.py │ ├── 395_longest_substring_with_at_least_k_repeating_characters.py │ ├── 398_random_pick_index.py │ ├── 399_evaluate_division.py │ ├── 406_queue_reconstruction_by_height.py │ ├── 416_partition_equal_subset_sum.py │ ├── 417_pacific_atlantic_water_flow.py │ ├── 41_first_missing_positive.py │ ├── 437_path_sum_iii.py │ ├── 454_4sum_ii.py │ ├── 461_hamming_distance.py │ ├── 480_sliding_window_median.py │ ├── 486_predict_the_winner.py │ ├── 48_rotate_image.py │ ├── 490_the_maze.py │ ├── 494_target_sum.py │ ├── 499_the_maze_iii.py │ ├── 505_the_maze_ii.py │ ├── 518_coin_change_2.py │ ├── 51_n_queens.py │ ├── 524_longest_word_in_dictionary_through_deleting.py │ ├── 52_n_queens_ii.py │ ├── 530_minimum_absolute_difference_in_bst.py │ ├── 542_01_matrix.py │ ├── 54_spiral_matrix.py │ ├── 592_fraction_addition_and_subtraction.py │ ├── 593_valid_square.py │ ├── 59_spiral_matrix_ii.py │ ├── 5_longest_palindromic_substring.py │ ├── 616_add_bold_tag_in_string.py │ ├── 643_maximum_average_subarray_i.py │ ├── 66_plus_one.py │ ├── 676_implement_magic_dictionary.py │ ├── 679_24_game.py │ ├── 681_next_closest_time.py │ ├── 682_baseball_game.py │ ├── 683_k_empty_slots.py │ ├── 684_redundant_connection.py │ ├── 685_redundant_connection_ii.py │ ├── 688_knight_probability_in_chessboard.py │ ├── 689_maximum_sum_of_3_non_overlapping_subarrays.py │ ├── 697_degree_of_an_array.py │ ├── 719_find_k_th_smallest_pair_distance.py │ ├── 721_accounts_merge.py │ ├── 734_sentence_similarity.py │ ├── 737_sentence_similarity_ii.py │ ├── 744_find_smallest_letter_greater_than_target.py │ ├── 746_min_cost_climbing_stairs.py │ ├── 747_largest_number_at_least_twice_of_others.py │ ├── 748_shortest_completing_word.py │ ├── 749_contain_virus.py │ ├── 750_number_of_corner_rectangles.py │ ├── 758_bold_words_in_string.py │ ├── 769_max_chunks_to_make_sorted.py │ ├── 776_split_bst.py │ ├── 777_swap_adjacent_in_lr_string.py │ ├── 778_swim_in_rising_water.py │ ├── 779_k_th_symbol_in_grammar.py │ ├── 783_minimum_distance_between_bst_nodes.py │ ├── 784_letter_case_permutation.py │ ├── 785_is_graph_bipartite.py │ ├── 786_k_th_smallest_prime_fraction.py │ ├── 787_cheapest_flights_within_k_stops.py │ ├── 788_rotated_digits.py │ ├── 789_escape_the_ghosts.py │ ├── 790_domino_and_tromino_tiling.py │ ├── 791_custom_sort_string.py │ ├── 7_reverse_integer.py │ ├── 81_search_in_rotated_sorted_array_ii.py │ └── 8_string_to_integer_atoi.py ├── lintcode/ │ ├── 102_linked_list_cycle.py │ ├── 103_linked_list_cycle_ii.py │ ├── 104_merge_k_sorted_lists.py │ ├── 105_copy_list_with_random_pointer.py │ ├── 107_word_break.py │ ├── 108_palindrome_partitioning_ii.py │ ├── 109_triangle.py │ ├── 10_string_permutation_ii.py │ ├── 110_minimum_path_sum.py │ ├── 111_climbing_stairs.py │ ├── 114_unique_paths.py │ ├── 115_unique_paths_ii.py │ ├── 116_jump_game.py │ ├── 117_jump_game_ii.py │ ├── 118_distinct_subsequences.py │ ├── 119_edit_distance.py │ ├── 11_search_range_in_binary_search_tree.py │ ├── 120_word_ladder.py │ ├── 121_word_ladder_ii.py │ ├── 122_largest_rectangle_in_histogram.py │ ├── 123_word_search.py │ ├── 124_longest_consecutive_sequence.py │ ├── 125_backpack_ii.py │ ├── 126_max_tree.py │ ├── 127_topological_sorting.py │ ├── 128_hash_function.py │ ├── 129_rehashing.py │ ├── 12_min_stack.py │ ├── 130_heapify.py │ ├── 131_building_outline.py │ ├── 132_word_search_ii.py │ ├── 134_lru_cache.py │ ├── 135_combination_sum.py │ ├── 1365_minimum_cycle_section.py │ ├── 1366_directed_graph_loop.py │ ├── 1367_police_distance.py │ ├── 1368_same_number.py │ ├── 136_palindrome_partitioning.py │ ├── 137_clone_graph.py │ ├── 138_subarray_sum.py │ ├── 139_subarray_sum_closest.py │ ├── 13_strstr.py │ ├── 141_sqrtx.py │ ├── 142_o1_check_power_of_2.py │ ├── 143_sort_colors_ii.py │ ├── 148_sort_colors.py │ ├── 149_best_time_to_buy_and_sell_stock.py │ ├── 14_first_position_of_target.py │ ├── 150_best_time_to_buy_and_sell_stock_ii.py │ ├── 151_best_time_to_buy_and_sell_stock_iii.py │ ├── 153_combination_sum_ii.py │ ├── 154_regular_expression_matching.py │ ├── 155_minimum_depth_of_binary_tree.py │ ├── 156_merge_intervals.py │ ├── 158_two_strings_are_anagrams.py │ ├── 159_find_minimum_in_rotated_sorted_array.py │ ├── 15_permutations.py │ ├── 160_find_minimum_in_rotated_sorted_array_ii.py │ ├── 165_merge_two_sorted_lists.py │ ├── 167_add_two_numbers.py │ ├── 168_burst_balloons.py │ ├── 16_permutations_ii.py │ ├── 171_anagrams.py │ ├── 175_invert_binary_tree.py │ ├── 178_graph_valid_tree.py │ ├── 17_subsets.py │ ├── 183_wood_cut.py │ ├── 18_subsets_ii.py │ ├── 190_next_permutation_ii.py │ ├── 191_maximum_product_subarray.py │ ├── 192_wildcard_matching.py │ ├── 196_find_the_missing_number.py │ ├── 197_permutation_index.py │ ├── 198_permutation_index_ii.py │ ├── 1_a_b_problem.py │ ├── 204_singleton.py │ ├── 211_string_permutation.py │ ├── 215_rate_limiter.py │ ├── 221_add_two_numbers_ii.py │ ├── 231_typeahead.py │ ├── 232_tiny_url.py │ ├── 234_webpage_crawler.py │ ├── 236_swap_bits.py │ ├── 242_convert_binary_tree_to_linked_lists_by_depth.py │ ├── 243_amicable_pair │ ├── 245_subtree.py │ ├── 246_binary_tree_path_sum_ii.py │ ├── 24_lfu_cache.py │ ├── 254_drop_eggs.py │ ├── 272_climbing_stairs_ii.py │ ├── 28_search_a_2d_matrix.py │ ├── 29_interleaving_string.py │ ├── 30_insert_interval.py │ ├── 31_partition_array.py │ ├── 32_minimum_window_substring.py │ ├── 35_reverse_linked_list.py │ ├── 360_sliding_window_median.py │ ├── 362_sliding_window_maximum.py │ ├── 363_trapping_rain_water.py │ ├── 364_trapping_rain_water_ii.py │ ├── 368_expression_evaluation.py │ ├── 36_reverse_linked_list_ii.py │ ├── 376_binary_tree_path_sum.py │ ├── 378_convert_binary_search_tree_to_doubly_linked_list.py │ ├── 382_triangle_count.py │ ├── 384_longest_substring_without_repeating_characters.py │ ├── 386_longest_substring_with_at_most_k_distinct_characters.py │ ├── 38_search_a_2d_matrix_ii.py │ ├── 390_find_peak_element_ii.py │ ├── 391_number_of_airplanes_in_the_sky.py │ ├── 392_house_robber.py │ ├── 393_best_time_to_buy_and_sell_stock_iv.py │ ├── 394_coins_in_a_line.py │ ├── 395_coins_in_a_line_ii.py │ ├── 396_coins_in_a_line_iii.py │ ├── 397_longest_increasing_continuous_subsequence.py │ ├── 3_digit_counts.py │ ├── 401_kth_smallest_number_in_sorted_matrix.py │ ├── 402_continuous_subarray_sum.py │ ├── 406_minimum_size_subarray_sum.py │ ├── 40_implement_queue_by_two_stacks.py │ ├── 414_divide_two_integers.py │ ├── 415_valid_palindrome.py │ ├── 417_valid_number.py │ ├── 418_integer_to_roman.py │ ├── 419_roman_to_integer.py │ ├── 41_maximum_subarray.py │ ├── 42_maximum_subarray_ii.py │ ├── 430_scramble_string.py │ ├── 431_connected_component_in_undirected_graph.py │ ├── 432_find_the_weak_connected_component_in_the_directed_graph.py │ ├── 433_number_of_islands.py │ ├── 434_number_of_islands_ii.py │ ├── 437_copy_books.py │ ├── 43_maximum_subarray_iii.py │ ├── 440_backpack_iii.py │ ├── 442_implement_trie.py │ ├── 443_two_sum_greater_than_target.py │ ├── 447_search_in_a_big_sorted_array.py │ ├── 450_reverse_nodes_in_k_group.py │ ├── 453_flatten_binary_tree_to_linked_list.py │ ├── 457_classical_binary_search.py │ ├── 458_last_position_of_target.py │ ├── 459_closest_number_in_sorted_array.py │ ├── 45_maximum_subarray_difference.py │ ├── 460_k_closest_numbers_in_sorted_array.py │ ├── 461_kth_smallest_numbers_in_unsorted_array.py │ ├── 462_total_occurrence_of_target.py │ ├── 465_kth_smallest_sum_in_two_sorted_arrays.py │ ├── 469_identical_binary_tree.py │ ├── 471_top_k_frequent_words.py │ ├── 472_binary_tree_path_sum_iii.py │ ├── 473_add_and_search_word.py │ ├── 474_lowest_common_ancestor_ii.py │ ├── 475_binary_tree_maximum_path_sum_ii.py │ ├── 479_second_max_of_array.py │ ├── 480_binary_tree_paths.py │ ├── 486_merge_k_sorted_arrays.py │ ├── 494_implement_stack_by_two_queues.py │ ├── 496_toy_factory.py │ ├── 497_shape_factory.py │ ├── 498_parking_lot.py │ ├── 499_word_count.py │ ├── 4_ugly_number_ii.py │ ├── 500_inverted_index.py │ ├── 501_mini_twitter.py │ ├── 502_mini_cassandra.py │ ├── 503_anagram_map_reduce.py │ ├── 504_inverted_index_map_reduce.py │ ├── 505_web_logger.py │ ├── 509_mini_yelp.py │ ├── 510_maximal_rectangle.py │ ├── 512_decode_ways.py │ ├── 513_perfect_squares.py │ ├── 515_paint_house.py │ ├── 516_paint_house_ii.py │ ├── 517_ugly_number.py │ ├── 518_super_ugly_number.py │ ├── 519_consistent_hashing.py │ ├── 51_previous_permutation.py │ ├── 520_consistent_hashing_ii.py │ ├── 521_remove_duplicate_numbers_in_array.py │ ├── 522_tiny_url_ii.py │ ├── 523_url_parser.py │ ├── 525_mini_uber.py │ ├── 526_load_balancer.py │ ├── 527_trie_serialization.py │ ├── 528_flatten_nested_list_iterator.py │ ├── 529_geohash.py │ ├── 52_next_permutation.py │ ├── 530_geohash_ii.py │ ├── 531_six_degrees.py │ ├── 532_reverse_pairs.py │ ├── 533_two_sum_closest_to_target.py │ ├── 534_house_robber_ii.py │ ├── 538_memcache.py │ ├── 539_move_zeroes.py │ ├── 53_reverse_words_in_a_string.py │ ├── 540_zigzag_iterator.py │ ├── 541_zigzag_iterator_ii.py │ ├── 543_kth_largest_in_n_arrays.py │ ├── 544_top_k_largest_numbers.py │ ├── 545_top_k_largest_numbers_ii.py │ ├── 547_intersection_of_two_arrays.py │ ├── 548_intersection_of_two_arrays_ii.py │ ├── 54_string_to_integer_ii.py │ ├── 551_nested_list_weight_sum.py │ ├── 552_create_maximum_number.py │ ├── 553_bomb_enemy.py │ ├── 555_counting_bloom_filter.py │ ├── 556_standard_bloom_filter.py │ ├── 559_trie_service.py │ ├── 560_friendship_service.py │ ├── 563_backpack_v.py │ ├── 564_backpack_vi.py │ ├── 565_heart_beat.py │ ├── 566_gfs_client.py │ ├── 56_two_sum.py │ ├── 573_build_post_office_ii.py │ ├── 574_build_post_office.py │ ├── 575_expression_expand.py │ ├── 578_lowest_common_ancestor_iii.py │ ├── 57_3sum.py │ ├── 582_word_break_ii.py │ ├── 584_drop_eggs_ii.py │ ├── 585_maximum_number_in_mountain_sequence.py │ ├── 586_sqrtx_ii.py │ ├── 587_two_sum_unique_pairs.py │ ├── 589_connecting_graph.py │ ├── 58_4sum.py │ ├── 590_connecting_graph_ii.py │ ├── 591_connecting_graph_iii.py │ ├── 594_strstr_ii.py │ ├── 595_binary_tree_longest_consecutive_sequence.py │ ├── 596_minimum_subtree.py │ ├── 597_subtree_with_maximum_average.py │ ├── 598_zombie_in_matrix.py │ ├── 599_insert_into_a_cyclic_sorted_list.py │ ├── 59_3sum_closest.py │ ├── 5_kth_largest_element.py │ ├── 600_smallest_rectangle_enclosing_black_pixels.py │ ├── 601_flatten_2d_vector.py │ ├── 602_russian_doll_envelopes.py │ ├── 603_largest_divisible_subset.py │ ├── 604_window_sum.py │ ├── 605_sequence_reconstruction.py │ ├── 606_kth_largest_element_ii.py │ ├── 607_two_sum_data_structure_design.py │ ├── 608_two_sum_input_array_is_sorted.py │ ├── 609_two_sum_less_than_or_equal_to_target.py │ ├── 610_two_sum_difference_equals_to_target.py │ ├── 611_knight_shortest_path.py │ ├── 612_k_closest_points.py │ ├── 613_high_five.py │ ├── 614_binary_tree_longest_consecutive_sequence_ii.py │ ├── 615_course_schedule.py │ ├── 616_course_schedule_ii.py │ ├── 617_maximum_average_subarray.py │ ├── 618_search_graph_nodes.py │ ├── 619_binary_tree_longest_consecutive_sequence_iii.py │ ├── 61_search_for_a_range.py │ ├── 620_maximum_subarray_iv.py │ ├── 621_maximum_subarray_v.py │ ├── 622_frog_jump.py │ ├── 623_k_edit_distance.py │ ├── 624_remove_substrings.py │ ├── 625_partition_array_ii.py │ ├── 630_knight_shortest_path_ii.py │ ├── 633_find_the_duplicate_number.py │ ├── 634_word_squares.py │ ├── 635_boggle_game.py │ ├── 636_132_pattern.py │ ├── 646_first_position_unique_character.py │ ├── 647_substring_anagrams.py │ ├── 64_merge_sorted_array.py │ ├── 654_sparse_matrix_multiplication.py │ ├── 655_big_integer_addition.py │ ├── 656_big_integer_multiplication.py │ ├── 65_median_of_two_sorted_arrays.py │ ├── 662_guess_number_game.py │ ├── 664_counting_bits.py │ ├── 667_longest_palindromic_subsequence.py │ ├── 668_ones_and_zeroes.py │ ├── 669_coin_change.py │ ├── 66_binary_tree_preorder_traversal.py │ ├── 676_decode_ways_ii.py │ ├── 67_binary_tree_inorder_traversal.py │ ├── 689_two_sum_bst_edtion.py │ ├── 68_binary_tree_postorder_traversal.py │ ├── 69_binary_tree_level_order_traversal.py │ ├── 6_merge_two_sorted_arrays.py │ ├── 70_binary_tree_level_order_traversal_ii.py │ ├── 717_tree_longest_path_with_same_value.py │ ├── 718_repeat_string.py │ ├── 71_binary_tree_zigzag_level_order_traversal.py │ ├── 724_minimum_partition.py │ ├── 725_boolean_parenthesization.py │ ├── 729_last_digit_by_factorial_divide.py │ ├── 745_palindromic_ranges.py │ ├── 74_first_bad_version.py │ ├── 752_rogue_knight_sven.py │ ├── 75_find_peak_element.py │ ├── 76_longest_increasing_subsequence.py │ ├── 772_group_anagrams.py │ ├── 775_palindrome_pairs.py │ ├── 776_strobogrammatic_number_ii.py │ ├── 77_longest_common_subsequence.py │ ├── 784_the_longest_common_prefix_ii.py │ ├── 790_parser.py │ ├── 791_merge_number.py │ ├── 792_kth_prime_number.py │ ├── 793_intersection_of_arrays.py │ ├── 7_binary_tree_serialization.py │ ├── 813_find_anagram_mappings.py │ ├── 81_data_stream_median.py │ ├── 823_input_stream.py │ ├── 824_single_number_iv.py │ ├── 826_computer_maintenance.py │ ├── 830_string_sort.py │ ├── 831_3sum_ii.py │ ├── 832_count_negative_number.py │ ├── 833_process_sequence.py │ ├── 85_insert_node_in_a_binary_search_tree.py │ ├── 86_binary_search_tree_iterator.py │ ├── 87_remove_node_in_binary_search_tree.py │ ├── 88_lowest_common_ancestor.py │ ├── 89_k_sum.py │ ├── 8_rotate_string.py │ ├── 900_closest_binary_search_tree_value.py │ ├── 901_closest_binary_search_tree_value_ii.py │ ├── 919_meeting_rooms_ii.py │ ├── 920_meeting_rooms.py │ ├── 92_backpack.py │ ├── 93_balanced_binary_tree.py │ ├── 95_validate_binary_search_tree.py │ ├── 96_partition_list.py │ ├── 97_maximum_depth_of_binary_tree.py │ ├── 98_sort_list.py │ └── 9_fizz_buzz.py ├── other/ │ ├── anti_queue_reconstruction_by_height.py │ ├── binary_tree_maximum_path_product.py │ ├── candy_crush.py │ ├── card_shuffler.py │ ├── deep_fetch.js │ ├── deep_fetch.test.js │ ├── find_treasure_in_maze.py │ ├── find_ways_in_board_game.py │ ├── freq_iterator.py │ ├── gcd_and_lcm.py │ ├── get_most_popular_word.py │ ├── guess_secret.py │ ├── inorder_non_threaded_binary_tree_traversal.py │ ├── is_valid_relation.py │ ├── merge_mail.py │ ├── reservation.py │ ├── robot_cleaner.py │ ├── snake_and_ladder_problem.py │ ├── stock_stream.py │ ├── string_abbreviation.py │ ├── the_point_inside_polygon.py │ ├── uneven_random_get.py │ ├── unique_paths_with_followups.py │ ├── unique_word_abbreviation_ii.py │ └── upside_down_numbers.py ├── pramp/ │ ├── array_index_and_element_equality.py │ ├── array_of_array_products.py │ ├── award_budget_cuts.py │ ├── bracket_match.py │ ├── busiest_time_in_the_mall.py │ ├── decrypt_message.py │ ├── deletion_distance.py │ ├── drone_flight_planner.py │ ├── find_the_duplicates.py │ ├── flatten_a_dictionary.py │ ├── h_tree_construction.py │ ├── k_messed_array_sort.py │ ├── largest_smaller_bst_node.py │ ├── number_of_paths.py │ ├── pairs_with_specific_difference.py │ ├── pancake_sort.py │ ├── root_of_number.py │ ├── sales_path.py │ ├── sentence_reverse.py │ ├── smallest_substring_of_all_characters.py │ ├── time_planner.py │ └── word_count_engine.py └── topic/ ├── README.md ├── _test/ │ └── python/ │ ├── __init__.py │ └── test_base.py ├── balanced_search_tree/ │ └── python/ │ ├── __init__.py │ ├── _helper.py │ └── red_black_tree.py ├── bit_manipulation/ │ ├── README.md │ └── python/ │ ├── __init__.py │ ├── calculator_in_bit.py │ └── calculator_in_bit__test.py ├── complexity_analysis.md ├── dynamic_programming/ │ └── README.md ├── graph/ │ ├── README.md │ └── python/ │ ├── __init__.py │ ├── union_find.py │ └── union_find__test.py ├── hash/ │ └── python/ │ ├── __init__.py │ ├── geohash.py │ ├── geohash__test.py │ ├── hashtable.py │ └── hashtable__test.py ├── heap/ │ └── python/ │ ├── __init__.py │ ├── binary_hash_heap.py │ ├── binary_heap.py │ ├── heap__test.py │ ├── lazy_removable_heapq.py │ └── removable_heapq.py ├── language/ │ ├── javascript/ │ │ ├── README.md │ │ └── traversal.md │ ├── php/ │ │ └── README.md │ ├── python/ │ │ ├── README.md │ │ ├── matrix.md │ │ ├── runtime_of_builtins.md │ │ └── traversal.md │ └── sql/ │ └── README.md ├── linked_list/ │ ├── README.md │ └── python/ │ ├── __init__.py │ ├── _helper.py │ ├── cyclic_doubly_list.py │ ├── cyclic_list.py │ ├── dummy_tail_doubly_list.py │ ├── dummy_tail_list.py │ ├── head_tail_doubly_list.py │ ├── head_tail_list.py │ ├── linked_list__test.py │ ├── two_dummy_doubly_list.py │ └── two_dummy_list.py ├── problem_set/ │ ├── subarray_sum.md │ └── substring_with_distinct_characters.md ├── range_query/ │ └── python/ │ ├── __init__.py │ ├── _helper.py │ ├── binary_indexed_tree.py │ ├── interval_tree.py │ ├── prefix_sum.py │ ├── range_tree.py │ └── segment_tree.py ├── searching/ │ ├── binary_search.md │ └── python/ │ ├── __init__.py │ └── _helper.py ├── sorting/ │ └── python/ │ ├── __init__.py │ ├── _helper.py │ ├── merge_sort.py │ ├── quick_sort.py │ └── sorting__test.py ├── system_design/ │ └── latency.md ├── traversal/ │ └── python/ │ ├── __init__.py │ ├── _helper.py │ ├── binary_tree_traversal__test.py │ ├── iterative_traversal.py │ ├── morris_traversal.py │ └── recursive_traversal.py └── tree/ ├── binary_tree.md └── python/ ├── __init__.py ├── _helper.py ├── binary_tree.py ├── binary_tree__test.py ├── trie.py └── trie__test.py