INDEX Arrays & Hashing Two Pointers Sliding Window Stack Binary Search Linked List Trees Priority Queue Backtracking Tries Graphs 1D Dynamic Programming 2D Dynamic Programming Greedy Intervals Bit Manipulation Category # Question Solution Arrays & Hashing 1 Contains Duplicate contains_duplicate.py 2 Valid Anagram valid_anagram.py 3 Two Sum two_sum.py 4 Group Anagrams group_anagrams.py 5 Top K Frequent Elements top_k_frequent_elements.py 6 Product of Array Except Self product_of_array_except_self.py 7 Valid Sudoku valid_sudoku.py 8 Encode & Decode Strings encode_decode_strings.py 9 Longest Consecutive Sequence longest_consecutive_sequence.py Two Pointers 1 Valid Palindrome valid_palindrome.py 2 Two Sum - II two_sum_ii.py 3 3Sum 3_sum.py 4 Container With Most Water container_with_most_water.py 5 Trapping Rain Water trapping_rain_water.py Sliding Window 1 Best time to Buy and Sell Stock best_buy_sell_stock.py 2 Longest Substring w/o Repeating Characters longest_substr_without_repeating_chars.py 3 Longest Repeating Character Replacement longest_repeating_character_replacement.py 4 Minimum Window Substring minimum_window_substring.py Stack 1 Valid Parentheses valid_parentheses.py 2 Min Stack min_stack.py 3 Evaluate Reverse Polish Notation evalRPN.py 4 Generate Parentheses generate_parentheses.py 5 Daily Temperatures daily_temperatures.py 6 Car Fleet car_fleet.py 7 Largest Rectangle in Histogram largest_rectangle_histogram.py 8 Min Length After Delete [Extra] min_length_after_delete.py Binary Search 1 Find Minimum in Rotated Sorted Array min_in_rotated_array.py 2 Search in Rotated Sorted Array search_in_rotated_array.py Linked List 1 Reverse Linked List reverse_linked_list.py 2 Merge Two Sorted Lists merge_two_sorted_lists.py 3 Reorder List reorder_list.py 4 Remove Nth Node From End of List remove_nth_node_from_end_of_list.py 5 Linked List Cycle linked_list_cycle.py 6 Merge K Sorted Lists merge_k_sorted_lists.py Trees 1 Invert Binary Tree invert_binary_tree.py 2 Maximum Depth of Binary Tree max_depth_of_binary_tree.py 3 Same Tree same_tree.py 4 Subtree of Another Tree subtree_of_another_tree.py 5 Lowest Common Ancestor of a Binary Tree lowest_common_ancestor_of_bst.py 6 Binary Tree Level Order Traversal binary_tree_level_order_traversal.py 7 Validate Binary Search Tree valid_bst.py 8 Kth Smallest Element in a BST kth_smallest_element_in_bst.py 9 Construct Binary Tree from Preorder and Inorder Traversal bt_from_inorder_and_preorder.py Priority Queue 1 Kth Largest Element in a Stream kth_largest.py 2 Last Stone Weight last_stone_weight.py 3 Find Median from Data Stream find_median_from_data_stream.py Backtracking 1 Combination Sum combination_sum.py Tries 1 Implement Trie (Prefix Tree) implement_trie.py 2 Design Add and Search Words Data Structure design_add_and_search_words.py Graphs 1 Number of Islands number_of_islands.py 2 Max Area of Island max_area_of_island.py 3 Clone Graph clone_graph.py 4 Rotting Oranges rotting_oranges.py 1-D Dynamic Programming 1 Climbing Stairs climbing_stairs.py 2 Min Cost Climbing Stairs min_cost_climbing_stairs.py 3 House Robber house_robber.py 4 House Robber II house_robber_ii.py 5 Longest Palindromic Substring longest_palindromic_substring.py 6 Palindromic Substrings palindromic_substrings.py 7 Decode Ways decode_ways.py 8 Coin Change coin_change.py 9 Maximum Product Subarray max_product_subarray.py 10 Word Break word_break.py 11 Longest Increasing Subsequence longest_increasing_subsequence.py 2-D Dynamic Programming 1 Unique Paths unique_paths.py 2 Longest Common Subsequence lcs.py Greedy 1 Maximum Subarray max_subarray.py 2 Jump Game jump_game.py Intervals 1 Insert Interval insert_interval.py 2 Merge Intervals merge_intervals.py 3 Non Overlapping Intervals non_overlapping_intervals.py Bit Manipulation 1 Number of 1 Bits number_of_1_bits.py 2 Counting Bits counting_bits.py 3 Reverse Bits reverse_bits.py 4 Missing Number missing_number.py