A collection of my solutions while following the Coding Interview Roadmap by DesignGurus.io.
This repository contains my implementations, notes, and explanations for algorithms, data structures, and problem-solving patterns covered in the roadmap. It aligns with the course’s focus on mastering core concepts through a combination of theory and hands-on coding challenges.
- Strengthen problem-solving skills
- Understand and apply common coding patterns
- Prepare efficiently for technical interviews
- Track personal progress through organized, topic-based solutions
📂 .
├── 📁 01-data-structures-and-algorithms
│ ├── 📁 01-array
│ │ ├── 01.running_sum_of_1d_array.py
│ │ ├── 02.contains_duplicate.py
│ │ ├── 03.left_and_right_sum_differences.py
│ │ └── 04.find_the_highest_altitude.py
│ ├── 📁 02-matrix
│ │ ├── 01.richest_customer_wealth.py
│ │ ├── 02.matrix_diagonal_sum.py
│ │ └── 03.row_with_maximum_ones.py
│ ├── 📁 03-stack
│ │ ├── 01.valid_parentheses.py
│ │ ├── 02.reverse_string.py
│ │ ├── 03.decimal_to_binary_conversion.py
│ │ ├── 04.next_greater_element.py
│ │ ├── 05.sorting_stack.py
│ │ ├── 06.simplify_path.py
│ │ ├── 07.remove_all_adjacent_duplicates_in_string.py
│ │ ├── 08.removing_stars_from_a_string.py
│ │ └── 09.make_the_string_great.py
│ ├── 📁 04-queue
│ ├── 📁 05-linked-list
│ │ └── 01.reverse_linked_list.py
│ ├── 📁 06-tree-and-binary-search-tree
│ ├── 📁 07-hash-table
│ ├── 📁 08-hash-set
│ ├── 📁 09-heap
│ │ ├── 01.take_gifts_from_the_richest_pile.py
│ │ ├── 02.sort_characters_by_frequency.py
│ │ ├── 03.minimum_cost_to_connect_sticks.py
│ │ └── 04.find_median_from_data_stream.py
│ ├── 📁 10-graph
│ ├── 📁 11-trie
│ ├── 📁 12-sorting
│ │ ├── 01.apple_redistribution_into_boxes.py
│ │ ├── 02.sort_array_by_increasing_frequency.py
│ │ ├── 03.sort_vowels_in_a_string.py
│ │ ├── 04.reduction_operations_to_make_the_array_elements_equal.py
│ │ ├── 05.divide_array_into_arrays_with_max_difference.py
│ │ ├── 06.top_k_frequent_elements.py
│ │ └── 07.meeting_rooms-ii.py
│ ├── 📁 13-searching
│ │ ├── 01.maximum_count_of_positive_integer_and_negative_integer.py
│ │ ├── 02.minimum_common_value.py
│ │ ├── 03.frequency_of_the_most_frequent_element.py
│ │ ├── 04.minimize_the_maximum_of_two_arrays.py
│ │ ├── 05.search_a_2d_matrix_ii.py
│ │ └── 06.sqrtx.py
│ ├── 📁 14-greedy-algorithm
│ │ ├── 01.valid_palindrome_ii.py
│ │ ├── 02.maximum_length_of_pair_chain.py
│ │ ├── 03.minimum_add_to_make_parentheses_valid.py
│ │ ├── 04.remove_duplicate_letters.py
│ │ ├── 05.largest_palindromic_number.py
│ │ └── 06.removing_minimum_and_maximum_from_array.py
│ ├── 📁 15-divide-and-conquer
│ │ ├── 01.longest_nice_substring.py
│ │ └── 02.majority_element.py
├── 📁 02-art-of-recursion
├── 📁 03-common-coding-patterns
│ ├── 📁 01-warm-up
│ │ ├── 01.contains_duplicate.py
│ │ ├── 02.check_if_the_sentence_is_pangram.py
│ │ ├── 03.reverse_vowels_of_a_string.py
│ │ ├── 04.valid_palindrome.py
│ │ ├── 05.valid_anagram.py
│ │ ├── 06.shortest-word-distance.py
│ │ ├── 07.number_of_good_pairs.py
│ │ └── 08.sqrtx.py
│ ├── 📁 02-two-pointers
│ │ ├── 01.pair_with_target_sum.py
│ │ ├── 02.remove_duplicates_from_sorted_array.py
│ │ ├── 03.squares_of_a_sorted_array.py
│ │ ├── 04.3sum.py
│ │ ├── 05.3sum_closest.py
│ │ ├── 06.3sum_smaller.py
│ │ ├── 07.sort_colors.py
│ │ ├── 08.4sum.py
│ │ ├── 09.backspace_string_compare.py
│ │ └── 10.shortest_unsorted_continuous_subarray.py
│ ├── 📁 03-fast-and-slow-pointers
│ │ ├── 01.linked_list_cycle.py
│ │ ├── 02.middle_of_the_linked_list.py
│ │ ├── 03.linked_list_cycle_ii.py
│ │ ├── 04.happy_number.py
│ │ ├── 05.palindrome_linked_list.py
│ │ └── 06.reorder_list.py
│ ├── 📁 04-sliding-window
│ │ ├── 01.maximum_sum_subarray_of_size_k.py
│ │ ├── 02.minimum_size_subarray_sum.py
│ │ ├── 03.longest_substring_with_at_most_k_distinct_characters.py
│ │ ├── 04.fruit_into_baskets.py
│ │ ├── 05.longest_repeating_character_replacement.py
│ │ ├── 06.max_consecutive_ones_iii.py
│ │ ├── 07.permutation_in_string.py
│ │ ├── 08.find_all_anagrams_in_a_string.py
│ │ ├── 11.subarray_product_less_than_k.py
│ │ └── 12.list_of_subarrays_product_less_than_k.py
│ ├── 📁 05-merge-intervals
│ │ ├── 01.merge_intervals.py
│ │ ├── 02.insert_interval.py
│ │ ├── 03.interval_list_intersections.py
│ │ ├── 04.meeting_room_i.py
│ │ ├── 05.meeting_rooms_ii.py
│ │ ├── 06.maximum_cpu_load.py
│ │ └── 07.employee_free_time.py
│ ├── 📁 06-cyclic-sort
│ │ ├── 01.cyclic_sort.py
│ │ ├── 02.missing_number.py
│ │ ├── 03.find_all_numbers_disappeared_in_an_array.py
│ │ ├── 04.find_the_duplicate_number.py
│ │ ├── 05.find_all_duplicates_in_an_array.py
│ │ ├── 06.find_the_corrupt_one.py
│ │ ├── 07.first_missing_positive.py
│ │ └── 08.first_k_missing_positive.py
│ ├── 📁 07-in-place-reversal-of-linked-list
│ │ ├── 01.reverse_linked_list.py
│ │ ├── 02.reverse_linked_list_ii.py
│ │ └── 05.rotate_linked_list.py
│ ├── 📁 08-stack
│ │ ├── 01.valid_parentheses.py
│ │ ├── 02.reverse_string.py
│ │ ├── 03.decimal_to_binary_conversion.py
│ │ ├── 04.next_greater_element.py
│ │ ├── 05.sorting_stack.py
│ │ ├── 06.simplify_path.py
│ │ ├── 07.remove_all_adjacent_duplicates_in_string.py
│ │ ├── 08.removing_stars_from_a_string.py
│ │ └── 09.make_the_string_great.py
│ ├── 📁 09-monotonic-stack
│ │ ├── 01.remove_nodes_from_linked_list.py
│ │ ├── 02.remove_all_adjacent_duplicates_in_string.py
│ │ ├── 03.next_greater_element_i.py
│ │ ├── 04.daily_temperatures.py
│ │ ├── 05.remove_all_adjacent_duplicates_in_string_ii.py
│ │ ├── 06.sum_of_subarray_minimums.py
│ │ └── 07.remove_k_digits.py
│ ├── 📁 10-hash-map
│ ├── 📁 11-level-order-traversal
│ │ ├── 01.binary_tree_level_order_traversal_ii.py
│ │ ├── 02.find_largest_value_in_each_tree_row.py
│ │ ├── 03.maximum_width_of_binary_tree.py
│ │ ├── 04.maximum_level_sum_of_a_binary_tree.py
│ │ ├── 05.binary_tree_zigzag_level_order_traversal.py
│ │ ├── 06.even_odd_tree.py
│ │ └── 07.n_ary_tree_level_order_traversal.py
│ ├── 📁 12-tree-breadth-first-search
│ ├── 📁 13-tree-depth-first-search
│ ├── 📁 14-graph
│ ├── 📁 15-island-matrix-traversal
│ ├── 📁 16-two-heaps
│ ├── 📁 17-subset
│ ├── 📁 18-modified-binary-search
│ ├── 📁 19-bitwise-xor
│ ├── 📁 20-top-k-elements
│ ├── 📁 21-k-way-merge
│ ├── 📁 22-greedy-algorithm
│ ├── 📁 23-dp-0-or-1-knapsack
│ ├── 📁 24-dp-fibonacci-number
│ ├── 📁 25-dp-palindromic-subsequence
│ ├── 📁 26-backtracking
│ ├── 📁 27-trie
│ ├── 📁 28-graph-topological-sort
│ ├── 📁 29-union-find
│ ├── 📁 30-ordered-set
│ ├── 📁 31-prefix-sum
│ ├── 📁 32-multi-threading
├── 📁 04-advanced-coding-patterns
├── 📁 05-dynamic-programming
├── LICENSE
├── README.md
└── directory_layout_script.py