gitextract_p9w8rb_6/ ├── .github/ │ └── ISSUE_TEMPLATE/ │ └── feature_request.md ├── .gitignore ├── 2D Arrays (Matrix)/ │ ├── 2D_sorted.go │ ├── 2D_sorted_array.java │ ├── binary_search.cpp │ ├── count_negatives_in_sorted_matrix.cpp │ ├── matrix_diagonal_sum.cpp │ ├── matrix_wave_print.cpp │ ├── rotate_matrix.cpp │ ├── rotate_matrix.go │ ├── rotate_matrix.java │ ├── rotate_matrix.js │ ├── rotate_matrix.py │ ├── search_element.cpp │ ├── searching_in_sorted_array.cpp │ ├── searching_in_sorted_array.java │ ├── searching_in_sorted_array.js │ ├── searching_in_sorted_array.py │ ├── set_matrix_0.cpp │ ├── set_matrix_0.go │ ├── set_matrix_0.java │ ├── spiral_traverse.cpp │ ├── spiral_traverse.go │ ├── spiral_traverse.java │ ├── spiral_traverse.py │ ├── zigzag_traversal.cpp │ ├── zigzag_traversal.go │ ├── zigzag_traversal.java │ ├── zigzag_traversal.js │ └── zigzag_traversal.py ├── Arrays/ │ ├── Jobassign.cpp │ ├── Maximum_freq.py │ ├── Rotatedarr.cpp │ ├── array_of_products.cpp │ ├── array_of_products.go │ ├── array_of_products.java │ ├── array_of_products.js │ ├── array_of_products.py │ ├── ceaser_cipher.cpp │ ├── ceaser_cipher.go │ ├── ceaser_cipher.java │ ├── ceaser_cipher.js │ ├── ceaser_cipher.py │ ├── dutch_national_flag.cpp │ ├── dutch_national_flag.go │ ├── dutch_national_flag.java │ ├── dutch_national_flag.js │ ├── dutch_national_flag.py │ ├── find_three_largest_integers.js │ ├── find_three_largest_number.cpp │ ├── find_three_largest_numbers.go │ ├── find_three_largest_numbers.java │ ├── find_three_largest_numbers.py │ ├── first_duplicate_value.cpp │ ├── first_duplicate_value.go │ ├── first_duplicate_value.java │ ├── first_duplicate_value.js │ ├── first_duplicate_value.py │ ├── four_sum.py │ ├── insert_interval.cpp │ ├── insert_interval.go │ ├── insert_interval.java │ ├── insert_interval.js │ ├── insert_interval.py │ ├── insert_intervals.cpp │ ├── insert_intervals.go │ ├── is_monotonic.cpp │ ├── is_monotonic.go │ ├── is_monotonic.java │ ├── is_monotonic.js │ ├── is_monotonic.py │ ├── longest_peak.cpp │ ├── longest_peak.go │ ├── longest_peak.java │ ├── longest_peak.js │ ├── longest_peak.py │ ├── majority_element.go │ ├── majority_element.java │ ├── maximum_subarray_sum.cpp │ ├── maximum_subarray_sum.go │ ├── maximum_subarray_sum.py │ ├── merge_intervals.cpp │ ├── merge_intervals.go │ ├── merge_intervals.java │ ├── merge_intervals.js │ ├── merge_intervals.py │ ├── merge_sorted_array.cpp │ ├── merge_sorted_array.java │ ├── merge_sorted_arrays.py │ ├── minimum_size_subarray_sum.java │ ├── move_element_to_end.cpp │ ├── move_element_to_end.go │ ├── move_element_to_end.java │ ├── move_element_to_end.js │ ├── move_element_to_end.py │ ├── non-overlapping intervals.cpp │ ├── pallindromic_permutations.cpp │ ├── sign_of_the_product_of_an_array.cpp │ ├── smallest_difference.cpp │ ├── smallest_difference.go │ ├── smallest_difference.java │ ├── smallest_difference.js │ ├── smallest_difference.py │ ├── sorted_square_array,js │ ├── sorted_square_array.cpp │ ├── sorted_square_array.go │ ├── sorted_square_array.java │ ├── sorted_square_array.py │ ├── string_halves.cpp │ ├── three_largest_no.py │ ├── total_hamming_distance.cpp │ ├── tournament_winner.go │ ├── triplet_sum.cpp │ ├── triplet_sum.go │ ├── triplet_sum.java │ ├── triplet_sum.js │ ├── triplet_sum.py │ └── urlify.go ├── Backtracking/ │ ├── Generate_Parentheses.py │ ├── geenrate_parentheses.go │ ├── n_queen.cpp │ ├── n_queens.java │ └── sudoko_solver.java ├── Binary Search/ │ ├── BinarySearchRecursive.java │ ├── binary_search.cpp │ ├── binary_search.js │ ├── binary_search.py │ ├── binary_search_iterative.go │ ├── binary_search_recursive.go │ ├── binary_serach_first_and_last_occurence.py │ ├── first_and_last_pos.js │ ├── first_and_last_pos_of_element.cpp │ ├── first_and_last_position.java │ ├── first_last_pos.java │ ├── first_occurance.go │ ├── first_occurence.java │ ├── first_true.cpp │ ├── first_true.go │ ├── first_true.java │ ├── first_true.js │ ├── first_true.py │ ├── floor_of_target.java │ ├── index_position.java │ ├── infinity_array.java │ ├── last_occurance.go │ ├── median_of_two_sorted_arrays.cpp │ ├── median_of_two_sorted_arrays.js │ ├── minimum_in_rotated_sorted_array.cpp │ ├── perfect_square.java │ ├── search_in_rotated_sorted_array.cpp │ ├── search_in_sorted_rotated_array.cpp │ ├── search_in_sorted_rotated_array.go │ ├── search_in_sorted_rotated_array.java │ ├── search_in_sorted_rotated_array.py │ ├── search_insert_position.js │ └── square_root.java ├── Bit Manipulation/ │ ├── bloom_filter.cpp │ ├── bloom_filter.py │ ├── count_bits.go │ ├── interesting_array.java │ ├── mod_array.java │ ├── number_of_1_bits.java │ ├── parity_of_a_word.go │ ├── power_of_2.cpp │ ├── reduce_to_zero.cpp │ ├── setbits.cpp │ ├── single_number.java │ └── subarrays_with_bitwise_OR_1.java ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dynamic Programming/ │ ├── best_time_to_buy_and_sell_stock.cpp │ ├── best_time_to_buy_and_sell_stock.go │ ├── best_time_to_buy_and_sell_stock.java │ ├── best_time_to_buy_and_sell_stock.js │ ├── best_time_to_buy_and_sell_stock.py │ ├── climb_stairs.cpp │ ├── climb_stairs.go │ ├── climb_stairs.java │ ├── climb_stairs.js │ ├── climb_stairs.py │ ├── coin_change.cpp │ ├── coin_change.go │ ├── coin_change.java │ ├── coin_change.js │ ├── coin_change.py │ ├── dice_throws.go │ ├── disk_stacking.go │ ├── disk_stacking.py │ ├── distance_of_nearest_0.cpp │ ├── distance_of_nearest_0.py │ ├── distane_of_nearest_0.go │ ├── distane_of_nearest_0.java │ ├── distane_of_nearest_0.js │ ├── edit_distance_dp.cpp │ ├── edit_distance_dp.go │ ├── edit_distance_dp.java │ ├── edit_distance_dp.js │ ├── edit_distance_dp.py │ ├── edit_distance_memoized.cpp │ ├── edit_distance_recursive.cpp │ ├── house_robber.cpp │ ├── juice_bottling.cpp │ ├── juice_bottling.go │ ├── juice_bottling.java │ ├── juice_bottling.js │ ├── juice_bottling.py │ ├── knapsack.cpp │ ├── knapsack.go │ ├── knapsack.java │ ├── knapsack.js │ ├── knapsack.py │ ├── knight_probability_chessboard.cpp │ ├── knight_probability_chessboard.go │ ├── knight_probability_chessboard.java │ ├── knight_probability_chessboard.js │ ├── knight_probability_chessboard.py │ ├── kth_closest_point_to origin.java │ ├── largest_rectangle.java │ ├── largest_rectangle.js │ ├── largest_rectangle.py │ ├── longest_common_subsequence_dp.cpp │ ├── longest_common_subsequence_memoization.cpp │ ├── longest_common_subsequence_recursive.cpp │ ├── longest_increasing_subsequence.cpp │ ├── longest_pallindromic_substring.cpp │ ├── longest_pallindromic_substring.go │ ├── longest_pallindromic_substring.java │ ├── longest_pallindromic_substring.js │ ├── longest_pallindromic_substring.py │ ├── max_path_sum.go │ ├── max_sum_increasing_subsequence.cpp │ ├── max_sum_increasing_subsequence.go │ ├── max_sum_increasing_subsequence.java │ ├── max_sum_increasing_subsequence.js │ ├── max_sum_increasing_subsequence.py │ ├── maximal_sqaure.cpp │ ├── maximal_sqaure.go │ ├── maximal_sqaure.js │ ├── maximal_sqaure.py │ ├── maximal_square.java │ ├── min_cost_travel_in_a_grid.cpp │ ├── min_insertion_steps_for_string_palindrome.java │ ├── min_number_of_jumps.cpp │ ├── min_number_of_jumps.go │ ├── min_number_of_jumps.java │ ├── min_number_of_jumps.js │ ├── min_number_of_jumps.py │ ├── min_steps_to_make_string_palindrome.go │ ├── min_steps_to_make_string_palindrome.java │ ├── min_steps_to_make_string_palindrome.py │ ├── min_steps_to_make_string_pallindrome.cpp │ ├── min_steps_to_make_string_pallindrome.js │ ├── min_steps_to_reduce_a_number_to_one.cpp │ ├── num_ways_to_make_change.cpp │ ├── num_ways_to_make_change.go │ ├── num_ways_to_make_change.java │ ├── num_ways_to_make_change.js │ ├── num_ways_to_make_change.py │ ├── num_ways_to_traverse_graph.cpp │ ├── num_ways_to_traverse_graph.go │ ├── num_ways_to_traverse_graph.js │ ├── num_ways_to_traverse_graph.py │ ├── numbers_in_pi.go │ ├── reconstruct_bst_in_python.py │ ├── rod_cutting_problem_dp.cpp │ ├── rod_cutting_problem_memoized.cpp │ ├── rod_cutting_problem_recursive.cpp │ ├── trapping_rain_water.cpp │ ├── unique_paths_with_obstacles.cpp │ ├── wine_selling_problem_dp.cpp │ ├── wine_selling_problem_memoized.cpp │ └── wine_selling_problem_recursive.cpp ├── Famous Algorithms/ │ ├── N_queen.js │ ├── euclidean_algorithm.java │ ├── euclidean_algorithm.js │ ├── euclidean_algorithm.py │ ├── kadanes_algorithm.c++ │ ├── kadanes_algorithm.go │ ├── kadanes_algorithm.java │ ├── kadanes_algorithm.py │ ├── kadenes_algorithm.js │ ├── kmp.java │ ├── kmp.js │ └── kmp.py ├── Fast and Slow Pointers/ │ ├── happy_number.go │ ├── linked_list_compute_midpoint.cpp │ ├── linked_list_compute_midpoint.java │ ├── linked_list_find_middle.py │ ├── linked_list_floyds_cycle_detection.cpp │ └── linked_list_floyds_cycle_detection.py ├── Graphs/ │ ├── Diljstra.go │ ├── GraphBFS.java │ ├── Graph_Dijstra.java │ ├── Graphs_Dijkstras.py │ ├── Graphs_Ford_Fulkerson.cpp │ ├── Graphs_bfs.cpp │ ├── Graphs_bfs.js │ ├── Graphs_bfs.py │ ├── Graphs_bfs_sssp.cpp │ ├── Graphs_cycle_detection_bfs.cpp │ ├── Graphs_cycle_detection_dfs.cpp │ ├── Graphs_dfs.cpp │ ├── Graphs_dfs.java │ ├── Graphs_dfs.js │ ├── Graphs_dfs.py │ ├── Graphs_dfs_connected_components.cpp │ ├── Graphs_dijkstras.js │ ├── Graphs_flood_fill.cpp │ ├── Graphs_kill_process.cpp │ ├── Graphs_kruskals_algo.cpp │ ├── Graphs_kruskals_algorithm.js │ ├── Graphs_topological_sort_bfs.cpp │ ├── Graphs_topological_sort_dfs.cpp │ ├── a_star_algorithm.py │ ├── adjacency_list.java │ ├── adjacency_matrix.go │ ├── adjacency_matrix.java │ ├── dijkstras.cpp │ ├── dijkstras.go │ ├── dijkstras.java │ ├── dijkstras.py │ ├── dijkstras_heap_based.go │ ├── ford_fulkerson.cpp │ ├── graphs_adjacency_list.cpp │ ├── graphs_adjacency_list_generic.cpp │ ├── graphs_bfs.go │ ├── graphs_dfs.go │ ├── kruskals_algorithm.java │ ├── kruskals_algorithm.py │ ├── remove_island.go │ ├── river_sizes.cpp │ ├── river_sizes.go │ ├── river_sizes.java │ ├── river_sizes.js │ ├── river_sizes.py │ ├── single_cycle_check.cpp │ ├── single_cycle_check.go │ ├── single_cycle_check.java │ ├── single_cycle_check.js │ ├── single_cycle_check.py │ ├── snack_ladders.cpp │ ├── snack_ladders.js │ ├── snack_ladders.py │ ├── snakes_ladders.java │ ├── topological_sort.cpp │ ├── topological_sort.go │ ├── topological_sort.java │ ├── topological_sort.js │ ├── topological_sort.py │ ├── two_colorable.cpp │ ├── two_colorable.go │ ├── two_colorable.java │ ├── two_colorable.js │ ├── two_colorable.py │ ├── union_find.cpp │ ├── union_find.go │ ├── union_find.java │ ├── union_find.js │ ├── union_find.py │ ├── validate_bst.cpp │ ├── validate_bst.go │ ├── validate_bst.java │ ├── validate_bst.js │ ├── validate_bst.py │ ├── youngest_common_ancestor.cpp │ ├── youngest_common_ancestor.go │ ├── youngest_common_ancestor.java │ ├── youngest_common_ancestor.js │ └── youngest_common_ancestor.py ├── Greedy/ │ ├── coin_change.go │ ├── coin_change.java │ ├── coin_change.js │ ├── coin_change.py │ ├── task_assignment.cpp │ ├── task_assignment.go │ ├── task_assignment.java │ ├── task_assignment.js │ └── task_assignment.py ├── Hash Table/ │ ├── Bloomfilter.cpp │ ├── Convert an array to reduced form using hashing.cpp │ ├── Count_Pairs_of_Points_With_Distance_k.py │ ├── HashTable.java │ ├── Longest_substring_without_repeating_characters.py │ ├── Partition.java │ ├── Partition_string.py │ ├── add_first_missing_positive.cpp │ ├── add_first_missing_positive.java │ ├── find_optimal_partition_of_string.cpp │ ├── find_optimal_partition_of_string.go │ ├── first_duplicate_value.go │ ├── first_missing_positve.go │ ├── first_missing_positve.js │ ├── first_missing_positve.py │ ├── first_non_repeated_character.go │ ├── first_repeated_character.go │ ├── four_number_sum.java │ ├── frequency_of_elements.java │ ├── group_anagrams.cpp │ ├── group_anagrams.go │ ├── group_anagrams.java │ ├── group_anagrams.js │ ├── group_anagrams.py │ ├── integer_to_roman.cpp │ ├── integer_to_roman.go │ ├── integer_to_roman.java │ ├── integer_to_roman.js │ ├── integer_to_roman.py │ ├── remove_duplicates.go │ ├── roman_to_integer.cpp │ ├── roman_to_integer.go │ ├── roman_to_integer.java │ ├── roman_to_integer.js │ ├── roman_to_integer.py │ ├── sum_of_unique_elements.java │ ├── three_number_sum.java │ ├── two_sum.cpp │ ├── two_sum.go │ ├── two_sum.java │ ├── two_sum.js │ ├── two_sum.py │ ├── zero_sum_subarray.cpp │ ├── zero_sum_subarray.go │ ├── zero_sum_subarray.java │ ├── zero_sum_subarray.js │ └── zero_sum_subarray.py ├── Heaps/ │ ├── heap.cpp │ ├── heap.go │ ├── heap.java │ ├── heap.js │ ├── heap.py │ └── k_closest.py ├── LICENSE ├── Linked List/ │ ├── Add_two_numbers.py │ ├── Intersection_LL.cpp │ ├── LFU_Cache.cpp │ ├── Linked_List_Component.java │ ├── MiddleOfLinkedList.java │ ├── MiddleofLL.py │ ├── RemoveKthNodeFromEnd.java │ ├── Remove_nth_node_from_end.java │ ├── add_two_numbers.cpp │ ├── add_two_numbers.js │ ├── delete_kth_node.js │ ├── double_linked_list.go │ ├── doubly_linked_list.cpp │ ├── doubly_linked_list.java │ ├── doubly_linked_list.js │ ├── floyds_cycle_detection.cpp │ ├── floyds_cycle_detection.go │ ├── floyds_cycle_detection.java │ ├── intersection_of_two_linked_lists.cpp │ ├── liniked_list_sort_list.cpp │ ├── linked_list.go │ ├── linked_list.js │ ├── linked_list.py │ ├── linked_list_add_two_numbers.py │ ├── linked_list_compute_middle.cpp │ ├── linked_list_compute_middle.java │ ├── linked_list_delete_at_any_pos.cpp │ ├── linked_list_delete_at_head.cpp │ ├── linked_list_delete_at_tail.cpp │ ├── linked_list_delete_node.go │ ├── linked_list_even_or_odd.go │ ├── linked_list_find_length.cpp │ ├── linked_list_insert_at_any_pos.cpp │ ├── linked_list_insert_at_head.cpp │ ├── linked_list_insert_at_tail.cpp │ ├── linked_list_kth_from_end.go │ ├── linked_list_kth_node_from_end.cpp │ ├── linked_list_linear_search.cpp │ ├── linked_list_merge_k_sorted_lists.cpp │ ├── linked_list_merge_two_sorted_linked_list.cpp │ ├── linked_list_mergesort_an_unsorted_list.cpp │ ├── linked_list_middle.go │ ├── linked_list_middle.js │ ├── linked_list_odd_even.cpp │ ├── linked_list_pallindrome.cpp │ ├── linked_list_recursive_search.cpp │ ├── linked_list_remove_dups.cpp │ ├── linked_list_remove_kth_node_from_end.py │ ├── linked_list_remove_nth_node_from_end.cpp │ ├── linked_list_remove_nth_node_from_end.py │ ├── linked_list_reverse.cpp │ ├── linked_list_reverse.js │ ├── linked_list_reverse_recursive.cpp │ ├── linked_list_sum_lists.cpp │ ├── linked_list_swap_nodes_in_pair.cpp │ ├── linked_list_swap_nodes_in_pair_iterative.cpp │ ├── linked_list_take_input.cpp │ ├── linked_list_take_input_as_array_operator_overloading.cpp │ ├── linked_list_take_input_operator_overloading.cpp │ ├── recursive and iterative in singly linkedlist.py │ ├── reverse_linked_list.go │ ├── reverse_linked_list.java │ ├── singly_linked_list.cpp │ ├── singly_linked_list.go │ ├── singly_linked_list.java │ ├── singly_linked_list.py │ ├── sll.go │ └── sort_linked_list.cpp ├── Math/ │ ├── Basic_operations.py │ ├── Count.go │ ├── Factorial.cpp │ ├── Factorial.go │ ├── Factorial.java │ ├── Factorial.py │ ├── Hamming_distance.py │ ├── Hammingdistance.cpp │ ├── K_closest.cpp │ ├── K_closest_points_to_origin.java │ ├── K_closest_points_to_origin.py │ ├── Number_of_Substrings_With_Only_1s.cpp │ ├── PowXn.go │ ├── PowXn.java │ ├── PowXn.py │ ├── Reverse_Integer.cpp │ ├── Sum_four.cpp │ ├── circle.cpp │ ├── count_numbers_with_unique_digits.java │ ├── count_primes.cpp │ ├── count_primes.java │ ├── count_unique_digits.cpp │ ├── count_unique_digits.go │ ├── factorial.py │ ├── factorial_iterative.js │ ├── find_longest_increasing_subsequence.cpp │ ├── hamming_distance.cpp │ ├── is_power_of_two.js │ ├── is_prime.js │ ├── k_closest_points_to_origin.cpp │ ├── missing_number.py │ ├── modular_expo_itera.cpp │ ├── modular_expo_recursive.cpp │ ├── num_points_inside_a_circle.cpp │ ├── num_points_inside_a_circle.js │ ├── num_points_inside_a_circle.py │ ├── num_steps_reduce_to_zero.Go │ ├── num_steps_reduce_to_zero.cpp │ ├── num_steps_reduce_to_zero.java │ ├── num_steps_reduce_to_zero.js │ ├── num_steps_reduce_to_zero.py │ ├── number_of_substrings_with_only_1s.js │ ├── op.js │ ├── palindrome_number.java │ ├── pallindrome_number.cpp │ ├── pallindrome_number.py │ ├── powXn.cpp │ ├── powXn.js │ ├── prime_factorization.cpp │ ├── shuffle_an_array.cpp │ ├── shuffle_an_array.py │ ├── sieve_of_eratosthenes.cpp │ ├── substrings_with_1s.py │ ├── unique_digits.cpp │ ├── unique_digits.java │ ├── unique_digits.py │ └── unique_integers_that_sum_up_to_0.cpp ├── Misc/ │ └── tictactoe.java ├── Patterns/ │ ├── CompleteSquare.java │ ├── HollowPattern.cpp │ ├── HollowPattern.go │ ├── HollowPattern.java │ ├── HollowPattern.py │ ├── Ladder_Pattern.java │ ├── ReverseRightTrianglePattern.java │ ├── RightPascalTriangle.java │ ├── StarDiamond.java │ ├── diamond_pattern.cpp │ ├── diamond_pattern.go │ ├── diamond_pattern.java │ ├── diamond_pattern.py │ ├── numerical_pattern.java │ ├── triangular_pattern.java │ └── triangular_pattern.py ├── Priority Queues/ │ ├── In_Place_HeapSort.cpp │ ├── buy_the_ticket.cpp │ ├── check_max_heap.cpp │ ├── kth_largest_element.cpp │ ├── kth_smallest_element.cpp │ ├── merge_k_sorted_arrays.cpp │ └── running_median.cpp ├── Queue/ │ ├── queue.cpp │ ├── queue.go │ ├── queue.java │ ├── queue.js │ ├── queue.py │ ├── queue_using_stack.js │ ├── queue_using_stacks.go │ ├── queues_using_stacks.py │ └── stack_using_queue.cpp ├── README.md ├── Recursion/ │ ├── calculatextopowern.cpp │ ├── count_digits.cpp │ ├── count_digits.go │ ├── count_zeros.cpp │ ├── count_zeros.go │ ├── factorial.cpp │ ├── factorial.go │ ├── factorial.js │ ├── fibonacci.cpp │ ├── fibonacci.go │ ├── fibonacci_memoization.cpp │ ├── fibonacci_memoization.go │ ├── geometric_sum.cpp │ ├── is_array_sorted.cpp │ ├── is_array_sorted.go │ ├── is_element_present.cpp │ ├── modular_exponentiation.cpp │ ├── multiplication.cpp │ ├── powerset.cpp │ ├── powerset.go │ ├── powerset.java │ ├── powerset.js │ ├── powerset.py │ ├── print_numbers.cpp │ ├── recursive_bubble_sort.cpp │ ├── reverse_print.go │ ├── tower_of_hannoi.cpp │ ├── tower_of_hannoi.java │ ├── tower_of_hannoi.js │ ├── tower_of_hannoi.py │ ├── tower_of_hanoi.go │ └── valid_palindrome_2.py ├── SECURITY.md ├── Scheduling/ │ ├── fcfs.c │ ├── sjf.c │ └── srtf.c ├── Scheduling Algortihms/ │ ├── fcfs.c │ ├── sjf.c │ └── srtf.c ├── Searching/ │ ├── first_duplicate_value.js │ ├── linear_search_string.cpp │ ├── semordnilap.go │ ├── separate_0s_and_1s.go │ └── separate_even_odd.go ├── Sliding Window/ │ ├── find_max.go │ ├── fruits_into_basket.cpp │ ├── fruits_into_basket.go │ ├── fruits_into_basket.java │ ├── fruits_into_basket.js │ ├── fruits_into_basket.py │ ├── longest_repeated_character_replacement.cpp │ ├── longest_repeated_character_replacement.go │ ├── longest_repeated_character_replacement.java │ ├── longest_repeated_character_replacement.js │ ├── longest_repeated_character_replacement.py │ ├── longest_substring_with_k_distinct_chars.go │ ├── longest_substring_with_k_distinct_chars.java │ ├── longest_substring_with_k_distinct_chars.js │ ├── longest_substring_with_k_distinct_chars.py │ ├── longest_substring_without_repeating_characters.go │ ├── max_eraser_value.go │ ├── max_eraser_value.java │ ├── sliding_window_max.java │ ├── sliding_window_max.js │ ├── sliding_window_max.py │ ├── subaray_sum_equals_k.cpp │ ├── subaray_sum_equals_k.go │ ├── subaray_sum_equals_k.java │ ├── subaray_sum_equals_k.js │ ├── subaray_sum_equals_k.py │ ├── subarray_product_less_than_k,js │ ├── subarray_product_less_than_k.cpp │ ├── subarray_product_less_than_k.go │ ├── subarray_product_less_than_k.java │ └── subarray_product_less_than_k.py ├── Stacks/ │ ├── Stack_with_max_API.cpp │ ├── Stacks_using_queues.py │ ├── balanced_parenthesis.go │ ├── is_palindrome.go │ ├── next_greater_element.c++ │ ├── next_greater_element.go │ ├── next_greater_element.java │ ├── next_greater_element.js │ ├── next_greater_element.py │ ├── queue using stack.go │ ├── queue using stack.java │ ├── queue using stack.js │ ├── queue using stack.py │ ├── queue_using_stacks.cpp │ ├── reverse_polish_notation.cpp │ ├── stack.cpp │ ├── stack.go │ ├── stack.java │ ├── stack.js │ ├── stack.py │ ├── stack_array_based.go │ ├── stack_dynamic_array.go │ ├── stack_linked_list.go │ ├── stack_using_queue.cpp │ ├── stack_using_queue.go │ ├── stack_using_queue.java │ ├── stack_using_queue.js │ ├── stack_using_queue.py │ ├── stacks_API.cpp │ ├── stacks_using_queues.java │ ├── stacks_with_queues.cpp │ ├── stacks_with_queues.py │ └── valid_parentheses.cpp ├── Strings/ │ ├── Dp_plaindrome.py │ ├── KMP.go │ ├── Longest_palindromic_substring.py │ ├── MaxConcatenatedstr.java │ ├── Min_palindrome.js │ ├── Valid_palindrome.py │ ├── case_specific_sorting_of_strings.cpp │ ├── check panagram.java │ ├── check_anagrams.java │ ├── check_palindrome.cpp │ ├── check_permutations.cpp │ ├── count_occurances.java │ ├── group_anagrams.cpp │ ├── group_anagrams.go │ ├── group_anagrams.java │ ├── group_anagrams.js │ ├── group_anagrams.py │ ├── is_pallindrome.cpp │ ├── is_pallindrome.go │ ├── is_pallindrome.java │ ├── is_pallindrome.js │ ├── is_pallindrome.py │ ├── is_unique.cpp │ ├── is_unique.go │ ├── is_unique.java │ ├── is_unique.js │ ├── is_unique.py │ ├── length_of_longest_substring.java │ ├── longest palindromic substring.java │ ├── longest_common_prefix.cpp │ ├── longest_string.cpp │ ├── one_edit.cpp │ ├── one_edit.go │ ├── one_edit.java │ ├── one_edit.js │ ├── one_edit.py │ ├── plaindrome_str.cpp │ ├── reverse_string.go │ ├── reverse_words_in_a_string.cpp │ ├── reverse_words_in_a_string.go │ ├── reverse_words_in_a_string.js │ ├── reverse_words_in_string.java │ ├── valid_palindrome.js │ ├── valid_pallindrome2.cpp │ ├── valid_pallindrome2.go │ ├── valid_pallindrome2.java │ ├── valid_pallindrome2.js │ ├── valid_pallindrome2.py │ ├── well_formed_parentheses.cpp │ ├── well_formed_parentheses.java │ └── zigzag_conversion.cpp ├── Trees/ │ ├── AVL/ │ │ └── avl.go │ ├── Binary Search Trees/ │ │ ├── Kth_Largest_Value_In_BST.py │ │ ├── Kth_largest_BST.cpp │ │ ├── Kth_largest_BST.java │ │ ├── Kth_largest_BST.js │ │ ├── Validate_BST.cpp │ │ ├── Validate_BST.java │ │ ├── Validate_BST.js │ │ ├── Validate_BST.py │ │ ├── bst.go │ │ ├── find_closest_value.cpp │ │ ├── find_closest_value.go │ │ ├── find_closest_value.js │ │ ├── find_closest_value.py │ │ ├── insert_into_bst.cpp │ │ ├── kth_largest.go │ │ ├── min_height_BST.cpp │ │ ├── min_height_BST.go │ │ ├── min_height_BST.java │ │ ├── min_height_BST.js │ │ ├── min_height_BST.py │ │ ├── reconstruct_bst.cpp │ │ ├── reconstruct_bst.go │ │ ├── reconstruct_bst.java │ │ ├── reconstruct_bst.js │ │ ├── reconstruct_bst.py │ │ ├── search.cpp │ │ └── validate_bst.go │ ├── Binary Trees/ │ │ ├── Trie.js │ │ ├── bfs.cpp │ │ ├── bfs.go │ │ ├── binary_tree.go │ │ ├── branch_sum.go │ │ ├── build_tree_preorder.cpp │ │ ├── calculate_size.go │ │ ├── count_nodes.cpp │ │ ├── delete.go │ │ ├── dfs.cpp │ │ ├── dfs.go │ │ ├── dfs.java │ │ ├── dfs.js │ │ ├── dfs.py │ │ ├── diameter.cpp │ │ ├── diameter.go │ │ ├── diameter.java │ │ ├── diameter.js │ │ ├── diameter.py │ │ ├── find_branch_sum.go │ │ ├── find_max.go │ │ ├── height.cpp │ │ ├── height.go │ │ ├── height_balanced_binary_tree.cpp │ │ ├── height_balanced_binary_tree.go │ │ ├── height_balanced_binary_tree.java │ │ ├── height_balanced_binary_tree.js │ │ ├── height_balanced_binary_tree.py │ │ ├── inorder_traversal.cpp │ │ ├── inorder_traversal.go │ │ ├── inorder_traversal.java │ │ ├── inorder_traversal.js │ │ ├── inorder_traversal.py │ │ ├── invert.cpp │ │ ├── invert.go │ │ ├── invert.java │ │ ├── invert.js │ │ ├── invert.py │ │ ├── is_symmetric.cpp │ │ ├── is_symmetric.go │ │ ├── is_symmetric.java │ │ ├── is_symmetric.js │ │ ├── is_symmetric.py │ │ ├── level_by_level.cpp │ │ ├── level_order_traversal.cpp │ │ ├── level_order_traversal.go │ │ ├── node_depth.go │ │ ├── postorder_traversal.cpp │ │ ├── preorder_traversal.cpp │ │ ├── remove_leaf_nodes.go │ │ ├── search_an_element.go │ │ └── sum_of_all_nodes.cpp │ ├── Implement_Trie.cpp │ ├── Implement_Trie.py │ ├── MaxpathBinaryTree.cpp │ ├── tree.go │ ├── trie.cpp │ ├── trie.go │ └── trie.java ├── Tries/ │ ├── pattern_matching.cpp │ ├── search_in_tries.cpp │ └── trie_node_class.cpp └── sorting/ ├── Cyclic_Sort.java ├── bubble_sort.cpp ├── bubble_sort.go ├── bubble_sort.java ├── bubble_sort.js ├── bubble_sort.py ├── bucket-sort.js ├── bucket_sort.cpp ├── bucket_sort.go ├── bucket_sort.java ├── bucket_sort.js ├── count_sort.cpp ├── count_sort.java ├── count_sort.js ├── count_sort.py ├── dnf.cpp ├── dnf.go ├── dnf.java ├── dnf.js ├── dnf.py ├── heap_sort.cpp ├── heap_sort.java ├── heap_sort.js ├── heap_sort.py ├── insertion_sort.cpp ├── insertion_sort.go ├── insertion_sort.java ├── insertion_sort.js ├── insertion_sort.py ├── merge_sort.cpp ├── merge_sort.go ├── merge_sort.java ├── merge_sort.js ├── merge_sort.py ├── quick_sort.cpp ├── quick_sort.go ├── quick_sort.java ├── quick_sort.js ├── quick_sort.py ├── radix_sort.cpp ├── radix_sort.go ├── radix_sort.java ├── radix_sort.js ├── radix_sort.py ├── selection_sort.cpp ├── selection_sort.go ├── selection_sort.java ├── selection_sort.js ├── selection_sort.py ├── tim_sort.cpp ├── tim_sort.go ├── tim_sort.java ├── tim_sort.py └── wave_sort.cpp