Please feel free to look up problem solutions or build your own code journal using this format
## Problems
├── a. Bits
│ ├── 0. Template
│ │ ├── a. Counting - Closest int with same bit count.py
│ │ ├── a. Counting - Count Bits.py
│ │ ├── b. Operation - Add.py
│ │ ├── b. Operation - Convert Base.py
│ │ ├── b. Operation - Divide.py
│ │ ├── b. Operation - Multiply.py
│ │ ├── b. Operation - Power.py
│ │ ├── b. Operation - Random Number.py
│ │ ├── c. Masking - Gray Code.py
│ │ ├── c. Masking - Reverse bits.py
│ │ └── c. Masking - Swap Bits.py
│ ├── a. Counting - Hamming Distance.py
│ ├── a. Counting - Number of Excellent Pairs.py
│ ├── b. Operation - Design BItset.py
│ ├── b. Operation - Integer Replacement.py
│ ├── c. Masking - Count Words Obtained After Adding a Letter.py
│ └── c. Masking - Search Duplicate and Missing.py
├── b. Strings & Hash
│ ├── 0. Template
│ │ ├── a. Palindrome - Can Form Palindrome.py
│ │ ├── a. Palindrome - Manacher - Longest Palindromic Substring.py
│ │ ├── a. Palindrome - Manacher's Algorithm - Longest Palindrome.py
│ │ ├── b. Encrypt - Run Length Encoding.py
│ │ ├── b. Encrypt - String Hash.py
│ │ ├── c. Best Substring - Find All Subset Combination in String.py
│ │ ├── c. Best Substring - Find Length of Longest Contained Interval.py
│ │ ├── c. Best Substring - Find Longest Subarray with Distinct Entries.py
│ │ ├── c. Best Substring - Find Smallest Subarray Covering All Values.py
│ │ ├── c. Best Substring - Find Smallest Subarray Sequentially Covering All Values.py
│ │ ├── d. String Mutation - Levenshtein Distance.py
│ │ ├── d. String Mutation - Replace Word in String.py
│ │ ├── e. String Match - Find Anagrams.py
│ │ ├── e. String Match - KMP - Implementation (Algo).py
│ │ ├── e. String Match - KMP - Implementation (G4G).py
│ │ ├── e. String Match - Rabin Karp - Implementation (CTCI).py
│ │ ├── e. String Match - Rabin Karp - Implementation (G4G).py
│ │ ├── e. String Match - Ransom Note.py
│ │ └── f. Hash - Find Nearest Repeated String in Array.py
│ ├── 1_Count_and_Say.cpp
│ ├── 1_First_Unique_Character_in_a_String.cpp
│ ├── 1_Implement_strStr().cpp
│ ├── 1_Keyboard_Row.cpp
│ ├── 1_License_Key_Formatting.cpp
│ ├── 1_Longest_Common_Prefix.cpp
│ ├── 1_Repeated_String_Match.cpp
│ ├── 1_Reverse_String.cpp
│ ├── 1_Reverse_Vowels_of_a_String.cpp
│ ├── 1_Reverse_Words_in_a_String.cpp
│ ├── 1_Reverse_Words_in_a_String_III.cpp
│ ├── 1_String_to_Integer_(atoi).cpp
│ ├── 2_Add_Bold_Tag_in_String.cpp
│ ├── 2_Group_Anagrams.cpp
│ ├── 2_Longest_Palindromic_Substring.cpp
│ ├── 2_Longest_Substring_Without_Repeating_Characters.cpp
│ ├── 2_Maximum_Product_of_Word_Lengths.cpp
│ ├── 2_Next_Closest_Time.cpp
│ ├── 2_One_Edit_Distance.cpp
│ ├── 2_Short_Encoding_of_Words.cpp
│ ├── 3_Regular_Expression_Matching.cpp
│ ├── 3_Word_Break2.cpp
│ ├── a. Find the Closest Palindrome.py
│ ├── a. Palindrome - Longest Palindrome by Concatenating Two Letter Words.py
│ ├── a. Palindrome - Manacher - Palindrome Substrings.py
│ ├── a. Palindrome - Palindrome Pairs.py
│ ├── a. Palindrome - Shortest Palindrome.py
│ ├── a. Palindrome - Strobogrammatic Number III.py
│ ├── a. Palindrome - Strobogrammatic Number.py
│ ├── b. Encrypt - Encode String with Shortest Length.py
│ ├── b. Encrypt - Excel Sheet Column Number.py
│ ├── b. Encrypt - Hash - Isomorphic Strings.py
│ ├── b. Encrypt - Int to Roman.py
│ ├── b. Encrypt - Roman to Int.py
│ ├── b. Encrypt - Strong Password Checker.py
│ ├── b. Hash - Bulls and Cows.py
│ ├── b. Hash - Naming a Company.py
│ ├── b. Hash - Shortest Word Distance III.py
│ ├── b. Hash - String Transforms Into Another String.py
│ ├── b. Hash - Substring with Concatenation of All Words.py
│ ├── c. Best Substring - Longest Balanced Substring (Algo).py
│ ├── c. Best Substring - Longest Binary Subsequence Less than or Equal to K.py
│ ├── c. Best Substring - Smallest Substring Containing (Algo).py
│ ├── c. String Mutation - Split Concatenated Strings.py
│ ├── d. String Mutation - Change Minimum Characters to Satisfy One of Three Conditions.py
│ ├── d. String Mutation - Duplicate Zeros.py
│ ├── d. String Mutation - Find and Replace in String.py
│ ├── d. String Mutation - Levenshtein - Edit Distance.py
│ ├── d. String Mutation - Rearrange String K Distance Apart.py
│ ├── d. String Mutation - Swap Adjacent in LR String.py
│ ├── d. String Mutation - Text Justification.py
│ ├── e. Search - Backspace String Compare.py
│ ├── e. Search - Rabin-Karp - Repeated DNA Sequences.py
│ ├── e. String Match - Rabin-Karp - String Differ by One Character.py
│ ├── e. String Match - Subsequence - Number of Matching Subsequences.py
│ ├── f. String Fitting - Sentence Screen Fitting.py
│ └── f. String Fitting - Shortest Way to Form String.py
├── c. Array
│ ├── 0. Template
│ │ ├── a. 1D 1 - Sum - List Multiply.py
│ │ ├── a. 1D 1 - Sum - List Plus One.py
│ │ ├── a. 1D 2 - Sequence - Alternate Small and Large.py
│ │ ├── a. 1D 2 - Sequence - Can Jump To End.py
│ │ ├── a. 1D 4 - Invariants - 3 Sum to Target.py
│ │ ├── a. 1D 4 - Invariants - Largest Rectangle Under Skyline.py
│ │ ├── a. 1D 4 - Invariants - Majority Element.py
│ │ ├── a. 1D 4 - Invariants - Travel Gas Problem.py
│ │ ├── a. 1D 4 - Invariants - Water Trap Problem.py
│ │ ├── b. 2D - Matrix - Rotate Matrix.py
│ │ └── b. 2D - Simulation - Spiral Ordering of 2D Array.py
│ ├── 1_Island_Perimeter.cpp
│ ├── 1_K_Weakest_Rows_in_Matrix.cpp
│ ├── 1_Letter_Case_Permutation.cpp
│ ├── 1_Plus_One.cpp
│ ├── 1_Remove_Duplicates_From_Sorted_Array.cpp
│ ├── 1_Reverse_Bits.cpp
│ ├── 1_Rotate_Array.cpp
│ ├── 1_Single_Number.cpp
│ ├── 1_Two_Sum.cpp
│ ├── 1_Valid_Parentheses.cpp
│ ├── 1_Valid_Sudoku.cpp
│ ├── 1_shiftGrid.cpp
│ ├── 2_3Sum.cpp
│ ├── 2_3Sum_Closest.cpp
│ ├── 2_Battleships_in_a_Board.cpp
│ ├── 2_Compare_Strings_by_Smallest_Char_Freq.cpp
│ ├── 2_Count_Submatrices_With_All_Ones.py
│ ├── 2_Counting_Bits.cpp
│ ├── 2_Find_Minimum_in_Rotated_Sorted_Array.cpp
│ ├── 2_Increasing_Triplet_Subsequence.cpp
│ ├── 2_K_Empty_Slots.cpp
│ ├── 2_Majority_Element.cpp
│ ├── 2_Max_Consecutive_Ones_II.cpp
│ ├── 2_Max_Number_of_Eaten_Apples.py
│ ├── 2_Missing_Ranges.cpp
│ ├── 2_Rectangle_Area.cpp
│ ├── 2_Set_Matrix_Zeroes.cpp
│ ├── 2_Single_Number_II.cpp
│ ├── 2_Sum_of_Two_Integers.cpp
│ ├── 2_Task_Scheduler.cpp
│ ├── 3_4Sum.cpp
│ ├── 3_4Sum_II.cpp
│ ├── 3_Basic_Calculator_II.cpp
│ ├── 3_Container_With_Most_Water.cpp
│ ├── 3_Contains_Duplicate_III.cpp
│ ├── 3_Find_the_Duplicate_Number.cpp
│ ├── 3_First_Missing_Positive.cpp
│ ├── 3_Game_of_Life.cpp
│ ├── 3_Largest_Rectangle_in_Histogram.cpp
│ ├── 3_Largest_Rectangle_in_Histogram.py
│ ├── 3_Longest_Consecutive_Sequence.cpp
│ ├── 3_Longest_Substring_with_At_Most_K_Distinct_Characters.cpp
│ ├── 3_Maximal_Rectangle.py
│ ├── 3_Minimum_Window_Substring.cpp
│ ├── 3_Product_of_Array_Except_Self.cpp
│ ├── 3_Sliding_Window_Maximum.cpp
│ ├── 3_Sliding_Window_Maximum.py
│ ├── 3_Spiral_Matrix.cpp
│ ├── 3_The_Skyline_Problem.cpp
│ ├── a. 1D - Interval - Number of Flowers in Full Bloom.py
│ ├── a. 1D - Sequence - Divide Array in Sets of K Consecutive Numbers.py
│ ├── a. 1D 1 - Continuous Subarray Sum.py
│ ├── a. 1D 1 - Sum - Contiguous 0|1 Array.py
│ ├── a. 1D 1 - Sum - Maxiumum Product Subarray.py
│ ├── a. 1D 2 - Sequence - Arithmetic Slices.py
│ ├── a. 1D 2 - Sequence - Frog Jump.py
│ ├── a. 1D 2 - Sequence - Jump Game II.py
│ ├── a. 1D 2 - Sequence - Longest Uncommon Subsequence II.py
│ ├── a. 1D 2 - Sequence - Split Array into Conscutive Subsequences.py
│ ├── a. 1D 2 - Sequence - Wiggle Subsequence.py
│ ├── a. 1D 3 - Interval - Amount of New Area Painted Each Day.py
│ ├── a. 1D 3 - Interval - Count Integers in Intervals.py
│ ├── a. 1D 3 - Interval - Employee Free Time.py
│ ├── a. 1D 3 - Interval - Find Right Interval.py
│ ├── a. 1D 3 - Interval - Insert Interval.py
│ ├── a. 1D 3 - Interval - Interval List Intersections.py
│ ├── a. 1D 3 - Interval - Maximum White Tiles Covered by a Carpet.py
│ ├── a. 1D 3 - Interval - Meeting Scheduler.py
│ ├── a. 1D 3 - Interval - Merge Intervals.py
│ ├── a. 1D 3 - Interval - Minimum Number of Arrows to Burst Balloons.py
│ ├── a. 1D 3 - Interval - Minimum Number of Taps to Open to Water a Garden.py
│ ├── a. 1D 3 - Interval - My Calendar I.py
│ ├── a. 1D 3 - Interval - My Calendar II.py
│ ├── a. 1D 3 - Interval - Range Module.py
│ ├── a. 1D 3 - Interval - Remove Covered Intervals.py
│ ├── a. 1D 3 - Interval - Video Stitching.py
│ ├── a. 1D 4 - Invariant - 3 Sum.py
│ ├── a. 1D 4 - Invariant - Container with Most Water.py
│ ├── a. 1D 4 - Invariant - Count Subarrays With Score Less than K.py
│ ├── a. 1D 4 - Invariant - Find Two Non-overlapping Sub-arrays Each with Target Sum.py
│ ├── a. 1D 4 - Invariant - K-Diff Pairs in Array.py
│ ├── a. 1D 4 - Invariant - Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit.py
│ ├── a. 1D 4 - Invariant - Longest Repeating Character Replacement.py
│ ├── a. 1D 4 - Invariant - Longest Substring Without Repeating Chars.py
│ ├── a. 1D 4 - Invariant - Longest Substring with At Least K Repeating Characters.py
│ ├── a. 1D 4 - Invariant - Longest Substring with at Most Two Distinct Characters.py
│ ├── a. 1D 4 - Invariant - Max Consecutive Ones II.py
│ ├── a. 1D 4 - Invariant - Max Consecutive Ones III.py
│ ├── a. 1D 4 - Invariant - Maximum Distance Between a Pair of Values.py
│ ├── a. 1D 4 - Invariant - Maximum Length of Subarray with Positive Product.py
│ ├── a. 1D 4 - Invariant - Maximum Score of a Good Subarray.py
│ ├── a. 1D 4 - Invariant - Maximum Size Subarray Sum Equals K.py
│ ├── a. 1D 4 - Invariant - Minimum Window Substring.py
│ ├── a. 1D 4 - Invariant - Permutation in String.py
│ ├── a. 1D 4 - Invariant - Trapping Rain Water.py
│ ├── a. 1D 4 - Invariant - Widest Pair of Indices with Equal Range Sum (Prefix Sum).py
│ ├── a. 1D 5 - Simulation - Candy Distribution.py
│ ├── a. 1D 5 - Simulation - Move Pieces to Obtain a String.py
│ ├── b. 1D - Simulation - Minimize Deviation in Array.py
│ ├── b. 2D - Invariant - Best Meeting Point.py
│ ├── b. 2D - Invariant - Number of Boomerangs.py
│ ├── b. 2D - Invariant - Trapping Rain Water II.py
│ ├── b. 2D - Simulation - Minimum Number of Flips to Convert Binary Matrix to Zero Matrix.py
│ ├── b. 2D - Simulation - Remove All Ones with Row and Column Flips II.py
│ ├── b. 2D - Simulation - Self Crossing.py
│ └── b. 2D - Simulation - Squirrel Simulation.py
├── d. Stack & Queue
│ ├── Template
│ │ ├── a. Monostack - Buildings with Sunset View.py
│ │ ├── a. Stack - Stack with Max.py
│ │ ├── b. Queue - Circular Queue.py
│ │ ├── b. Queue - Queue from Stack.py
│ │ ├── b. Queue - Queue with Max(using Deque).py
│ │ ├── b. Queue - Queue with Max.py
│ │ ├── c. Brackets - Valid Bracket.py
│ │ ├── d. File System - Normalize Path Names.py
│ │ └── e. RPN - Evaluate RPN.py
│ ├── a. Stack - Exclusive Time of Functions.py
│ ├── a. Stack - Mini Parser.py
│ ├── a. Stack - MonoStack - Remove K Digits.py
│ ├── a. Stack - Next Greater Element.py
│ ├── a. Stack - Score of Parentheses.py
│ ├── a. Stack - Shorten Path (Algo).py
│ ├── a. Stack - Ternary Expression Parser.py
│ ├── b. Monostack - Build Maximum Binary Tree.py
│ ├── b. Monostack - Create Maximum Number.py
│ ├── b. Monostack - Find the Most Competitive Subsequence.py
│ ├── b. Monostack - 132 Pattern.py
│ ├── b. Monostack - Car Fleet II.py
│ ├── b. Monostack - Largest Rectangle in Histogram.py
│ ├── b. Monostack - Minimum Cost Tree From Leaf Values.py
│ ├── b. Monostack - Next Greater Element I.py
│ ├── b. Monostack - Next Greater Element II.py
│ ├── b. Monostack - Odd Even Jump.py
│ ├── b. Monostack - Online Stock Span.py
│ ├── b. Monostack - Remove Duplicate Letters.py
│ ├── b. Monostack - Sum of Subarray Minimums.py
│ ├── b. Monostack - Sum of Subarray Ranges.py
│ ├── c. Brackets - Brace Expansion II.py
│ ├── c. Brackets - Decode String.py
│ ├── c. Brackets - Longest Valid Parentheses.py
│ ├── c. Brackets - Valid Parentheses.py
│ ├── d. Expression - (RPN) Design an Expression Tree with Evaluate Function.py
│ ├── d. Expression - Basic Calculator III.py
│ ├── d. Expression - Basic Calculator.py
│ ├── d. Expression - Build Binary Expression Tree from Infix Expression.py
│ └── d. Expression - Number of Atoms.py
├── e. Linked List
│ ├── 0. Template
│ │ ├── 0. Doubly Linked List.py
│ │ ├── 0. Linked List.py
│ │ ├── 0. Node.cpp
│ │ ├── 0. Node.py
│ │ ├── a. Mutate - Cyclical Right Shift.py
│ │ ├── a. Mutate - Even Odd Merger.py
│ │ ├── a. Mutate - List Pivoting.py
│ │ ├── a. Mutate - Reverse Linked List.py
│ │ ├── a. Mutate - Reverse Sublist.py
│ │ ├── b. Search - Find Cycle - Detect Cycle.py
│ │ ├── b. Search - Find Cycle - Find Start Node of Cycle (CTCI).py
│ │ ├── b. Search - Find Cycle - Find Start Node of Cycle (Clean).py
│ │ ├── b. Search - Intersect - Test Overlap of Two List (No Cycle).py
│ │ ├── b. Search - Intersect - Test Overlap of Two List (With Cycle).py
│ │ ├── b. Search - Is Palindromic.py
│ │ └── c. Merge - Add Two Numbers.py
│ ├── 1_Linked_List_Cycle.cpp
│ ├── 1_Merge_Two_Sorted_Lists.cpp
│ ├── 1_Palindrome_Linked_List.cpp
│ ├── 1_Remove_Duplicates_from_Sorted_List.cpp
│ ├── 1_Remove_Linked_List_Elements.cpp
│ ├── 1_Remove_Nth_Node_From_End_of_List.cpp
│ ├── 1_Reverse_Linked_List.cpp
│ ├── 2_Add_Two_Numbers.cpp
│ ├── 2_Intersection_of_Two_Linked_Lists.cpp
│ ├── 2_Odd_Even_Linked_List.cpp
│ ├── 2_Reverse_Nodes_In_K_Group.cpp
│ ├── 2_Swap_Nodes_in_Pairs.cpp
│ ├── 3_Copy_List_with_Random_Pointer.cpp
│ ├── 3_Merge_k_Sorted_Lists.cpp
│ ├── 3_Sort_List.cpp
│ ├── a. Binary Tree - Number of Binary Tree Topologies (Algo).py
│ ├── a. Manipulate - Compute - Add Two Numbers.py
│ ├── a. Manipulate - Copy List with Random Pointer.py
│ ├── a. Manipulate - Insert into a Cyclic Sorted List.py
│ ├── a. Manipulate - Merge Two Sorted Lists.py
│ ├── a. Manipulate - Node Swap (Algo).py
│ ├── a. Manipulate - Partition List.py
│ ├── a. Manipulate - Plus One Linked List.py
│ ├── a. Manipulate - Rearrange Linked List (Algo).py
│ ├── a. Manipulate - Remove Duplicates from Sorted List II.py
│ ├── a. Manipulate - Remove Nth Node from End.py
│ ├── a. Manipulate - Reverse Linked List II.py
│ ├── a. Manipulate - Rotate List by K.py
│ ├── a. Manipulate - Zip Linked List (Algo).py
│ └── a. Search - Find Cycle - Linked List Cycle (Floyd's Cycle).py
├── f. Trees
│ ├── 0. Template
│ │ ├── a. Binary Tree - Binary Tree Node.py
│ │ ├── a. Binary Tree - Check Height Balance.py
│ │ ├── a. Binary Tree - Check if Symmetric.py
│ │ ├── a. Binary Tree - Construct - Build Exterior List from BT.py
│ │ ├── a. Binary Tree - Construct - Build From Pre-Order List.py
│ │ ├── a. Binary Tree - Construct - Build from In-Order and Pre-Order sequence.py
│ │ ├── a. Binary Tree - Construct - Linked List from leaves of BT.py
│ │ ├── a. Binary Tree - Construct - Right Sibling Tree.py
│ │ ├── a. Binary Tree - Delete Node.py
│ │ ├── a. Binary Tree - Find Kth Node.py
│ │ ├── a. Binary Tree - Find Path Sum with Target Value.py
│ │ ├── a. Binary Tree - Find Successor.py
│ │ ├── a. Binary Tree - LCA Optimize for Close Ancestors.py
│ │ ├── a. Binary Tree - LCA with Parent Pointer.py
│ │ ├── a. Binary Tree - LCA.py
│ │ ├── a. Binary Tree - Sum of all Path Binary.py
│ │ ├── a. Binary Tree - Traversal - Implementation using Stack.cpp
│ │ ├── a. Binary Tree - Traversal - InOrder Constant Space with Parent Pointer.py
│ │ ├── a. Binary Tree - Traversal - InOrder Stack.py
│ │ ├── a. Binary Tree - Traversal - Morris Constant Space Mutating Traversal.py
│ │ ├── a. Binary Tree - Traversal - PreOrder.py
│ │ ├── b. BST - BST Node.py
│ │ ├── b. BST - Check if Three BST Nodes are Ordered.py
│ │ ├── b. BST - Check if Valid BST.py
│ │ ├── b. BST - Construct BST from Pre-Order.py
│ │ ├── b. BST - Construct Credit Info using augmented BST.py
│ │ ├── b. BST - Find Closest Entries in Three Sorted Arrays.py
│ │ ├── b. BST - Find First Greater Than K.py
│ │ ├── b. BST - Find K Largest.py
│ │ ├── b. BST - Find LCA.py
│ │ ├── b. BST - Find Range Values in BST.py
│ │ ├── b. Binary Tree - Traversal - Iterator.py
│ │ ├── c. N-ary Tree - Encode N-ary Tree to Binary Tree.py
│ │ ├── c. N-ary Tree - Node.cpp
│ │ ├── c. N-ary Tree - Postorder Traversal.py
│ │ ├── c. N-ary Tree - Preorder Traversal.py
│ │ ├── c. N-ary Tree - Serialize and Deserialize N-ary Tree.py
│ │ ├── d. Special Tree - Fenwick Tree - Implementation.py
│ │ ├── d. Special Tree - Segment Tree - Array Implementation.py
│ │ ├── e. Trie - Implementation.py
│ │ └── e. Trie - Suffix Trie.py
│ ├── 1_Balanced_Binary_Tree.cpp
│ ├── 1_Balanced_Binary_Tree.py
│ ├── 1_Binary_Tree_Level_Order_Traversal.cpp
│ ├── 1_Binary_Tree_Level_Order_Traversal2.cpp
│ ├── 1_Closest_Binary_Search_Tree_Value.cpp
│ ├── 1_Convert_Sorted_Array_to_Binary_Search_Tree.cpp
│ ├── 1_Convert_Sorted_Array_to_Binary_Search_Tree.py
│ ├── 1_Lowest_Common_Ancestor_of_a_Binary_Search_Tree.cpp
│ ├── 1_Maximum_Depth_of_Binary_Tree.cpp
│ ├── 1_Merge_Two_Binary_Trees.cpp
│ ├── 1_Minimum_Depth_of_Binary_Tree.cpp
│ ├── 1_N-ary_Tree_Preorder_Traversal_Iterative.cpp
│ ├── 1_Path_Sum.cpp
│ ├── 1_Same_Tree.cpp
│ ├── 1_Symmetric_Tree.cpp
│ ├── 1_Validate_Binary_Search_Tree.cpp
│ ├── 2_Binary_Tree_Inorder_Traversal.cpp
│ ├── 2_Binary_Tree_Zigzag_Level_Order_Traversal.cpp
│ ├── 2_Binary_Trees_With_Factors.cpp
│ ├── 2_Construct_Binary_Tree_from_Inorder_and_Postorder.py
│ ├── 2_Construct_Binary_Tree_from_Preorder_and_Inorder.cpp
│ ├── 2_Construct_Binary_Tree_from_Preorder_and_Inorder.py
│ ├── 2_Contains_Nearly_Duplicate.py
│ ├── 2_Inorder_Successor_in_BST.cpp
│ ├── 2_Kth_Smallest_Element_in_a_BST.cpp
│ ├── 2_Longest_Univalue_Path.cpp
│ ├── 2_Populating_Next_Right_Pointers_in_Each_Node.cpp
│ ├── 2_Range_Sum_Query_Mutable.py
│ ├── 2_Top_K_Frequent_Elements.cpp
│ ├── 3_Binary_Tree_Maximum_Path_Sum.cpp
│ ├── 3_Kth_Largest.py
│ ├── 3_Lowest_Common_Ancestor_of_a_Binary_Tree.cpp
│ ├── 3_Maximum_XOR_of_Two_Numers_in_Array.py
│ ├── 3_Word_Search_II.py
│ ├── a. BT - Construct - Clone Binary Tree with Random Pointer.py
│ ├── a. BT - Construct - Construct Binary Tree From String.py
│ ├── a. BT - Construct - Flatten Binary Tree (Algo).py
│ ├── a. BT - Construct - Longest Path with Different Adjacent Characters.py
│ ├── a. BT - Construct - Populating Next Right Pointers in Each Node.py
│ ├── a. BT - Construct - Right Sibling Tree Mutated (Algo).py
│ ├── a. BT - Traversal - (Morris) Flatten Binary Tree to Linked List.py
│ ├── a. BT - Traversal - All Nodes Distance K in Binary Tree.py
│ ├── a. BT - Traversal - Compare Leaf Traversal (Algo).py
│ ├── a. BT - Traversal - Convert BST to Sorted Doubly LL.py
│ ├── a. BT - Traversal - Count Complete Tree Nodes.py
│ ├── a. BT - Traversal - Count Univalue Subrees.py
│ ├── a. BT - Traversal - Flip Equivalent Binary Tree.py
│ ├── a. BT - Traversal - House Robber III.py
│ ├── a. BT - Traversal - LCA of List of Nodes.py
│ ├── a. BT - Traversal - Maximum Path Sum.py
│ ├── a. BT - Traversal - Mutate - Binary Tree Upside Down.py
│ ├── a. BT - Traversal - Path Sum III.py
│ ├── a. BT - Traversal - Time Needed to Inform All Employees.py
│ ├── a. BT - Traversal - Vertical Order Traversal of a Binary Tree.py
│ ├── b. BST - Compute - Right Smaller Than (Algo).py
│ ├── b. BST - Construct - Min-Height BST from Sorted Array.py
│ ├── b. BST - Traversal - Are Same BST (Algo).py
│ ├── b. BST - Traversal - Closest BST Value II.py
│ ├── b. BST - Traversal - Closest BST Value.py
│ ├── b. BST - Traversal - Convert BST to Greater Tree.py
│ ├── b. BST - Traversal - Delete Node in BST.py
│ ├── b. BST - Traversal - Inorder Successor in BST.py
│ ├── b. BST - Traversal - Recover BST.py
│ ├── b. BST - Traversal - Validate Three Nodes (Algo).py
│ ├── b. BST - Traversal - Verify Preorder Sequence in Binary Search Tree.py
│ ├── c. N-ary Tree - Clone N-ary Tree.py
│ ├── c. N-ary Tree - Construct Quad Tree.py
│ ├── c. N-ary Tree - Logical OR of Two Binary Grids Represented as Quad-Trees.py
│ ├── c. N-ary Tree - Trie - Delete Duplicate Folders in System.py
│ ├── d. Special Tree - Fenwick - Count Subarrays with More Ones Than Zeros.py
│ ├── d. Special Tree - Fenwick - Count of Range Sum.py
│ ├── d. Special Tree - Fenwick - Design Most Recently Used Queue.py
│ ├── d. Special Tree - Fenwick - Finding MK Average.py
│ ├── d. Special Tree - Fenwick - Range Sum Query 2D - Mutable.py
│ ├── d. Special Tree - RB Tree - Generate First KAB Sqrt2.py
│ ├── d. Special Tree - Segment Tree - Count of Smaller Numbers After Self.py
│ ├── d. Special Tree - Segment Tree - Range Sum Query - Immutable.py
│ ├── d. Trie - Design Autocomplete System.py
│ ├── d. Trie - Design File System.py
│ └── d. Trie - Search Suggestion System.py
├── g. Heap
│ ├── Template
│ │ ├── a. Top K - K Largest Element.py
│ │ ├── c. Heap - Implementation.py
│ │ ├── c. Heap - K Almost Sorted Array.py
│ │ ├── c. Heap - K Closest Stars.py
│ │ ├── c. Heap - K Largest in Binary Heap.py
│ │ ├── c. Heap - Merge Sorted Arrays.py
│ │ ├── c. Heap - Merge Sorted Files.py
│ │ ├── c. Heap - Online Median.py
│ │ ├── c. Heap - Sort Increasing-Decreasing Array.py
│ │ ├── c. Heap - Top K.py
│ │ ├── c. Heap 1.py
│ │ ├── c. Heap 2 - Heap Sort.py
│ │ └── c. Heap 3 - kth Largest.py
│ ├── a. Top K - Find K Pairs with Smallest Sums.py
│ ├── a. Top K - K Closest Points to Origin.py
│ ├── a. Top K - Maximum Score of a Node Sequence.py
│ ├── a. Top K - Meeting Rooms II.py
│ ├── a. Top K - Merge k Sorted Lists.py
│ ├── a. Top K - Minimum Cost to Hire K Workers.py
│ ├── a. Top K - Top K Frequent Words.py
│ ├── b. K Distant - K Messed Array Sort.cpp
│ ├── c. Heap Queue - Process Tasks Using Servers.py
│ ├── c. Heap Queue - Single-Threaded CPU.py
│ └── c. Heap Queue - Smallest Range Covering Elements from K Lists.py
├── h. Sort & Search
│ ├── 1_Binary_Search.py
│ ├── 1_Find_Smallest_Letter_Greater_Than_Target.py
│ ├── 1_First_Bad_Version.cpp
│ ├── 1_Merge_Sorted_Array.cpp
│ ├── 1_Search_Insert_Position.cpp
│ ├── 1_Valid_Perfect_Square.py
│ ├── 2_Capacity_To_Ship_Packages_Within_D_Days.py
│ ├── 2_Find_K_Closest_Elements.py
│ ├── 2_Find_Peak_Element.cpp
│ ├── 2_Meeting_Rooms_II.cpp
│ ├── 2_Merge_Intervals.cpp
│ ├── 2_Search_a_2D_Matrix_II.cpp
│ ├── 2_Search_for_a_Range.cpp
│ ├── 2_Search_in_Rotated_Sorted_Array.cpp
│ ├── 2_Search_in_Rotated_Sorted_Array.py
│ ├── 2_Sort_Colors.cpp
│ ├── 3_Kth_Smallest_Element_in_a_Sorted_Matrix.cpp
│ ├── 3_Median_of_Two_Sorted_Arrays.cpp
│ ├── 3_Split_Array_Largest_Sum.py
│ ├── 3_Wiggle_Sort_II.cpp
│ ├── Template
│ │ ├── Search First of K.py
│ │ ├── Search Kth Largest.py
│ │ ├── Search Missing IP.py
│ │ ├── Search Smallest.py
│ │ ├── Search Sorted Matrix.py
│ │ ├── Search Square Root.py
│ │ ├── Search Target.py
│ │ ├── Smallest Non-Constructible Sum.py
│ │ ├── Sorting Datastructure.py
│ │ ├── a. Binary Search - 3 Types Templates.py
│ │ ├── c. Merge Sort Inplace.py
│ │ ├── c. Merge Sort.cpp
│ │ ├── c. MergeSort.py
│ │ ├── d. Quick Sort.cpp
│ │ ├── d. Quick Sort.py
│ │ ├── d. Sort - Custom Sort - Fast Sorting Using Linked List.py
│ │ ├── d. Sort - Custom Sort - Group By Age.py
│ │ ├── d. Sort - Custom Sort - Team Photo.py
│ │ ├── e. DC Sort - Quick Sort - Dutch Flag Problem.py
│ │ ├── e. Heap Sort.cpp
│ │ └── e. Radix Sort.py
│ ├── a. Binary Search - Count Pairs in Two Arrays.py
│ ├── a. Binary Search - Divide Chocolate.py
│ ├── a. Binary Search - Find First and Last Pos of Value in Sorted Array.py
│ ├── a. Binary Search - Find K-th Smallest Pair Distance.py
│ ├── a. Binary Search - Find the Smallest Divisor Given a Threshold.py
│ ├── a. Binary Search - Heaters.py
│ ├── a. Binary Search - Median of Two Sorted Arrays.py
│ ├── a. Binary Search - Peak Index in a Mountain Array.py
│ ├── a. Binary Search - Search in Rotated Sorted Array I.py
│ ├── a. Binary Search - Search in Rotated Sorted Array II.py
│ ├── a. Binary Search - Split Array Largest Sum.py
│ ├── b. Interval - Find Union of Intervals.py
│ ├── b. Interval - Max Number of Simultaneous Events.py
│ ├── b. Interval - Merge Intervals.py
│ ├── c. Threshold - Find Salary Cap.py
│ ├── d. Sort - Brute Sort - Bad Sorters.cpp
│ ├── d. Sort - Brute Sort - Sort Array by Parity.py
│ ├── d. Sort - Custom Sort - Compare Version Numbers.py
│ ├── d. Sort - Custom Sort - Number of Weak Characters in the Game.py
│ ├── d. Sort - Custom Sort - Pancake Sort.cpp
│ ├── d. Sort - Custom Sort - Remove Duplicate.py
│ ├── d. Sort - Custom Sort - Sort Transformed Array.py
│ ├── e. DC Sort - Merge Sort - Count Merge Sort (Algo).py
│ ├── e. Special Sort - Radix Sort - Maximum Gap.py
│ └── f. Special Sort - Wiggle Sort.py
├── i. Recursion & Backtrack
│ ├── 2_All_Possible_Full_Binary_Trees.py
│ ├── 2_Array_to_BST_Permutation.py
│ ├── 2_Generate_Parentheses.cpp
│ ├── 2_Letter_Combinations_of_a_Phone_Number.cpp
│ ├── 2_Permutations.cpp
│ ├── 2_Snakes_and_Ladders.py
│ ├── 2_Subsets.cpp
│ ├── 2_Word_Search.cpp
│ ├── 3_Palindrome_Partitioning.cpp
│ ├── 3_Regular_Expression_Matching.cpp
│ ├── 3_Remove_Invalid_Parentheses.cpp
│ ├── 3_Wildcard_Matching.cpp
│ ├── Template
│ │ ├── a. Recursion - Gray Code.py
│ │ ├── a. Recursion - N-Queens.py
│ │ ├── a. Recursion - Sudoku Solver.py
│ │ ├── a. Recursion - Towers of Hanoi.py
│ │ ├── b. Backtracking - N-Queen.py
│ │ ├── b. Backtracking - Scheduling - Interval Covering Problem.py
│ │ ├── b. Backtradking - Scheduling - Schedule to Minimize Time.py
│ │ ├── c. Permutation - Apply Permutation.py
│ │ ├── c. Permutation - Find Next Permutation.py
│ │ ├── c. Permutations - Generate Permutations.py
│ │ ├── c. Permutations - Generate all Binary Tree.py
│ │ ├── c. Permutations - Generate all Palindromes from String.py
│ │ ├── c. Permutations - Generate all Subsets of Size K.py
│ │ ├── c. Permutations - Generate all Subsets.py
│ │ ├── c. Permutations - Generate all Valid Parentheses String of K.py
│ │ ├── c. Permutations - Recursive Implementation.py
│ │ ├── d. Random - Compute Random Permutation.py
│ │ ├── d. Random - Non-uniform Random Numbers.py
│ │ ├── d. Random - Online Random Sampling.py
│ │ ├── d. Random - Random Subarray.py
│ │ └── d. Random - Random Subset.py
│ ├── a. Recursion - 24 Game.py
│ ├── a. Recursion - Android Unlock Patterns.py
│ ├── a. Recursion - Count Number of Texts.py
│ ├── a. Recursion - Cracking the Safe.py
│ ├── a. Recursion - Distinct Subsequences.py
│ ├── a. Recursion - Generate Parentheses.py
│ ├── a. Recursion - Letter Combination of Phone Number.py
│ ├── a. Recursion - Minimum Time to Finish the Race.py
│ ├── a. Recursion - Number of Music Playlist.py
│ ├── a. Recursion - Reaching Points.py
│ ├── a. Recursion - Regular Expression Matching.py
│ ├── a. Recursion - Scramble String.py
│ ├── a. Recursion - Strobogrammatic Number II.py
│ ├── a. Recursion - Word Search II.py
│ ├── b. Backtrack - Game - Can I Win.py
│ ├── b. Backtrack - Game - Flip Game II.py
│ ├── b. Backtrack - Game - Predict the Winner.py
│ ├── b. Backtrack - Matchsticks to Square.py
│ ├── b. Backtrack - Maximum Score Words Formed by Letters.py
│ ├── b. Backtrack - Path - 1 Bit and 2 Bit Characters.py
│ ├── b. Backtrack - Path - Different Ways to Add Parentheses.py
│ ├── b. Backtrack - Path - Generalized Abbreviation.py
│ ├── b. Backtrack - Path - Guess Number Higher or Lower II.py
│ ├── b. Backtrack - Path - Increasing Subsequences.py
│ ├── b. Backtrack - Path - Letter Combinations of a Phone Number.py
│ ├── b. Backtrack - Path - Number of Dice Rolls With Target Sum.py
│ ├── b. Backtrack - Path - Palindrome Partitioning I.py
│ ├── b. Backtrack - Path - Palindrome Partitioning II.py
│ ├── b. Backtrack - Path - Partition to K Equal Sum Subsets.py
│ ├── b. Backtrack - Path - Restore IP Addresses.py
│ ├── b. Backtrack - Path - Student Attendance Record II.py
│ ├── b. Backtrack - Path - Word Squares.py
│ ├── b. Backtrack - Scheduling - Minimum Number of Work Sessions to Finish the Task.py
│ ├── b. Backtrack - Scheduling - Optimum Task Time Allocation.py
│ ├── b. Backtrack - Simulation - Number of Ways to Build Sturdy Brick Wall.py
│ ├── b. Backtrack - Simulation - Robot Room Cleaner.py
│ ├── b. Backtrack - Simulation - Unique Paths.py
│ ├── b. Backtrack - Simultation - Execution of all Suffix Instruction in Grid.py
│ ├── b. Backtrack - Wild Card - Valid Parenthesis String.py
│ ├── b. Backtracking - Path - Optimal Account Balancing.py
│ ├── c. Permutation - Next Permutation.py
│ ├── c. Permutation - Permutations I.py
│ ├── c. Permutation - Permutations II.py
│ ├── c. Permutation - nth Permutation.py
│ ├── d. Combination - Closest Subsequence Sum.py
│ ├── d. Combination - Combination Sum.py
│ ├── d. Combination - Factor Combinations.py
│ ├── d. Combination - Partition Array Into Two Arrays to Minimize Sum Difference.py
│ ├── d. Combination - Subsets I.py
│ └── d. Combination - Subsets II.py
├── j. DP
│ ├── 0. Template
│ │ ├── 01knapsack.cpp
│ │ ├── Sales_Path.cpp
│ │ ├── a. Path - Combinations - String to Dictionary Word Decomposition(BBB problem).py
│ │ ├── a. Path - Kadane.py
│ │ ├── a. Path - Optimal Path - Find Minimum Weight Path in Triangle.py
│ │ ├── a. Path - Optimal Path - Pick Up Coins for Maximum Gain.py
│ │ ├── a. Path - Optimal Path - The Pretty Printing Problem.py
│ │ ├── a. Path - Sum - Compute Binomial Coefficient.py
│ │ ├── a. Path - Sum - Count Number of Ways to Traverse in 2D Grid.py
│ │ ├── a. Path - Sum - Count the Number of Moves to Climb Stairs.py
│ │ ├── a. Path - Sum - Is Pattern Contained in Grid.py
│ │ ├── a. Path 1 - Sum - Find Max Subarrary.py
│ │ ├── a. Path 2 - Combinations - Count the Number of Score Combinations.py
│ │ ├── c. Edit Distance - Levenshtein Distance.py
│ │ ├── e. LIS - Find Longest Non-decreasing Subsequence.py
│ │ ├── e. LIS - Implementation.py
│ │ ├── f. Knapsack.py
│ │ ├── hashmap.py
│ │ ├── hashset.py
│ │ ├── knapsack.cpp
│ │ ├── lcs.cpp
│ │ ├── lics.cpp
│ │ └── number_of_paths.cpp
│ ├── 1_Maximum_Subarray.cpp
│ ├── 2_Combination_Sum.py
│ ├── 2_Jump_Game.cpp
│ ├── 2_Number_of_Dice_Rolls_With_Target_Sum.py
│ ├── 2_Subarray_Sum_Equals_K.py
│ ├── 2_Target_Sum.py
│ ├── 3_Cherry_Pickup_II.py
│ ├── 3_Edit_Distance.cpp
│ ├── 3_Find_All_Concatenated_Words.py
│ ├── 3_Maximal_Rectangle.cpp
│ ├── 3_Maximum_Product_Subarray.cpp
│ ├── 3_Minimum_Window_Substring.py
│ ├── 3_Number_of_Ways_to_Paint_Nx3_Grid.py
│ ├── 3_Perfect_Squares.cpp
│ ├── 3_Word_Break_II.py
│ ├── a. 1D - Climbing Stairs.py
│ ├── a. 1D - Coin Change 1 - Fewest coin for the amount.py
│ ├── a. 1D - Coin Change 2 - Number of combinations for the amount.py
│ ├── a. 1D - Combination Sum IV.py
│ ├── a. 1D - Combinations - Count Unique Characters of All Substring of a Given String.py
│ ├── a. 1D - Combinations - Total Appeal of String.py
│ ├── a. 1D - Decode Ways.py
│ ├── a. 1D - Longest Palindromic Subsequence.py
│ ├── a. 1D - Longest String Chain (Algo).py
│ ├── a. 1D - Maximum Length of Repeated Subarray.py
│ ├── a. 1D - Minimum Cost For Tickets.py
│ ├── a. 1D - Minimum Number of Refueling Stops.py
│ ├── a. 1D - Paint Fence.py
│ ├── a. 1D - Paint House 1.py
│ ├── a. 1D - Paint House 2 - with color cost.py
│ ├── a. 1D - Paint House 3 - with already painted houses.py
│ ├── a. 1D - Path - Combinations - Number of Ways to Select Buildings.py
│ ├── a. 1D - Race Car.py
│ ├── a. 1D - Rod Cutting Problem.py
│ ├── a. 1D - Sum - Number of People Aware of a Secret.py
│ ├── a. 1D - Unique BSTs.py
│ ├── a. 1D - Word Break.py
│ ├── a. Kadane - Maximum Sum Circular Subarray.py
│ ├── a. Path - Optimal Range - Maximum Product Subarray.py
│ ├── a. Path - Optimal Range - Maximum Subarray (Kadane).py
│ ├── a. Path - Stock - Buy and Sell Twice.py
│ ├── a. Path - Sum - Dungeon Game.py
│ ├── a. Path - Sum - House Robber I.py
│ ├── a. Path - Sum - House Robber II (circular).py
│ ├── a. Path - Sum - Unique Substrings in Wraparound String.py
│ ├── b. 2D - Champagne Tower.py
│ ├── b. 2D - Has Square of Zero Border (Algo).py
│ ├── b. 2D - Interleaving String.py
│ ├── b. 2D - Longest Line of Consecutive One in Matrix.py
│ ├── b. 2D - Maximal Square.py
│ ├── b. 2D - Maximum Score from Performing Multiplication Operations.py
│ ├── b. 2D - Minimum Cost to Merge Stones.py
│ ├── b. 2D - Minimum Cuts for Partitioning Palindrome.py
│ ├── b. 2D - Minimum Difficulty of a Job Schedule.py
│ ├── b. 2D - Out of Boundary Paths.py
│ ├── b. 2D - Rectangle Mania (Algo).py
│ ├── b. 2D - Stamping the Grid.py
│ ├── b. 2D - Sum - Maximum Number of Points with Cost.py
│ ├── b. 2D - Tiling a Rectangle with the Fewest Squares.py
│ ├── b. Path - Minimum Path Sum.py
│ ├── b. Path - Unique Paths 1.py
│ ├── b. Path - Unique Paths 2 - with obstacle.py
│ ├── c. LCS - Longest Common Subsequence.py
│ ├── c. LCS - Return longest string(Algo).py
│ ├── d. LCS - Delete Operation for Two Strings.py
│ ├── d. LIS - Longest Increasing Subsequence.py
│ ├── d. LIS - Number of Longest Increasing Subsequence.py
│ ├── e. Edit Distance.py
│ ├── f. Knapsack - Maximum Profit in Job Scheduling.py
│ ├── f. Knapsack - Ones and Zeroes.py
│ ├── f. Knapsack.py
│ ├── g. Partition.py
│ ├── h. Best Time Buy and Sell Stock 1.py
│ ├── h. Best Time Buy and Sell Stock 2 Multibuy.py
│ ├── h. Best Time Buy and Sell Stock 3 Up to two buys.py
│ ├── h. Best Time Buy and Sell Stock 4 Up to K buys.py
│ ├── h. Best Time Buy and Sell Stock 5 Multibuy with 1 day cooldown.py
│ ├── h. Best Time Buy and Sell Stock 6 Multibuy with transaction fee.py
│ ├── h. Max Profit with K Transactions (Algo).py
│ └── i. Chain Multiplication - Burst Balloons.py
├── k. Graphs
│ ├── 0_Template
│ │ ├── 0. Graph Representation.cpp
│ │ ├── a. UnionFind 1 - Simple.py
│ │ ├── a. UnionFind 2 - Path Compression.py
│ │ ├── a. UnionFind 3 - Rank.py
│ │ ├── a. UnionFind 4 - Path Compression Rank.py
│ │ ├── a. UnionFind 5 - Cycle Detection.py
│ │ ├── a. UnionFind 5 - Tracking Size.py
│ │ ├── b. GraphSearch 2 - DFS - Clone a graph.py
│ │ ├── b. GraphSearch 3 - Dijkstra (Algo).py
│ │ ├── b. GraphSearch 3 - Dijkstra.py
│ │ ├── b. GraphSearch 4 - Bellman Ford.py
│ │ ├── b. GraphSearch 6 - Floyd Warshall.cpp
│ │ ├── b. Search - DFS - Dreadlock Detection.py
│ │ ├── b. Search - DFS - Paint a Boolean Matrix.py
│ │ ├── b. Search 1 - BFS - Clone a Graph.py
│ │ ├── b. Search 1 - BFS - Compute Enclosed Regions.py
│ │ ├── b. Search 1 - BFS - Is Pin Placement Feasible.py
│ │ ├── b. Search 1 - BFS - Transform a String.py
│ │ ├── b. Search 2 - DFS - Team Photo Day 2.py
│ │ ├── c. MinSpanTree - Kruskal.py
│ │ ├── c. MinSpanTree - Prim.py
│ │ ├── d. Cycle Detection - Detect Cycle.py
│ │ ├── d. Cycle Detection - Euler Circuit.cpp
│ │ ├── e. TopoSort - Implementation (Algo).py
│ │ ├── e. TopoSort 1 - DFS.py
│ │ └── e. Toposort 2 - BFS.py
│ ├── 1_Max_Area_of_Island.cpp
│ ├── 2_Find_the_Celebrity.cpp
│ ├── 2_Insert_into_a_Cyclic_Sorted_List.cpp
│ ├── 2_Minimize_Hamming_Distance_After_Swap_Operations.py
│ ├── 2_Number_of_Islands.cpp
│ ├── 2_Synonymous_Sentences.py
│ ├── 3_Count_of_Smaller_Numbers_After_Self.cpp
│ ├── 3_Course_Schedule.cpp
│ ├── 3_Course_Schedule_II.cpp
│ ├── 3_Friend_Circles.cpp
│ ├── 3_Longest_Increasing_Path_in_a_Matrix.cpp
│ ├── 3_Surrounded_Regions.cpp
│ ├── 3_Word_Ladder.cpp
│ ├── a. Union Find - Accounts Merge.py
│ ├── a. Union Find - Bipartition - Possible Bipartition.py
│ ├── a. Union Find - Checking Existence of Edge Length Limited Paths.py
│ ├── a. Union Find - Count Unreachable Pairs in Undirected Graph.py
│ ├── a. Union Find - Find All People with Secret.py
│ ├── a. Union Find - Making a Large Island.py
│ ├── a. Union Find - Minimize Malware Spread.py
│ ├── a. Union Find - Number of Islands II.py
│ ├── a. Union Find - Rank Transform of a Matrix.py
│ ├── a. Union Find - Regions Cut by Slashes.py
│ ├── a. Union Find - Remove Max Number of Edges to Keep Graph Fully Traversable.py
│ ├── a. Union Find - Satisfiability of Equality Equations.py
│ ├── a. Union Find - Similar String Groups.py
│ ├── b. Graph Search - BFS - Shortest Path Visiting All Nodes.py
│ ├── b. Search 1 - BFS - Bus Routes.py
│ ├── b. Search 1 - BFS - Clone Graph.py
│ ├── b. Search 1 - BFS - Closest Node to Path in Tree.py
│ ├── b. Search 1 - BFS - Escape the Spreading Fire.py
│ ├── b. Search 1 - BFS - Evaluate Division.py
│ ├── b. Search 1 - BFS - Minimum Moves to Move a Box to Their Target Location.py
│ ├── b. Search 1 - BFS - Pacific Atlantic Water Flow.py
│ ├── b. Search 1 - BFS - Shortest Distance from All Buildings.py
│ ├── b. Search 1 - BFS - Word Ladder I (Word Chain).py
│ ├── b. Search 1 - BFS - Word Ladder II.py
│ ├── b. Search 1 - BFS Bidirectional - Jump Game IV.py
│ ├── b. Search 2 - DFS - Airport Connectinos (Algo).py
│ ├── b. Search 2 - DFS - Bridges in Graph, Two-Edge-Connected Graph (Algo).py
│ ├── b. Search 2 - DFS - Is Graph Bipartite.py
│ ├── b. Search 2 - DFS - Longest Cycle in a Graph.py
│ ├── b. Search 2 - DFS - Longest Increasing Path in a Matrix.py
│ ├── b. Search 2 - DFS - Most Stones Removed with Same Row or Column.py
│ ├── b. Search 2 - DFS - Path with Maximum Minimum Value.py
│ ├── b. Search 3 - Dijkstra - Minimum Weighted Subgraph with the Required Paths.py
│ ├── b. Search 3 - Dijkstra - The Maze II.py
│ ├── b. Search 3 - Dijkstra - The Maze III.py
│ ├── b. Search 4 - A Star - Implementation (Algo).py
│ ├── b. Search 4 - AStar - Shortest Path in a Grid with Obstacles Elimination.py
│ ├── b. Search 5 - Bellman Ford - Detect Arbitrage (Algo).py
│ ├── e. TopoSort - Alien Dictionary.py
│ ├── e. TopoSort - Course Schedule II.py
│ ├── e. TopoSort - Kahn - Find All Possible Recipes from Given Supplies.py
│ ├── e. TopoSort - Maximum Employees to Be Invited to a Meeting.py
│ ├── e. TopoSort - Parallel Courses (Kahn).py
│ ├── e. TopoSort - Sequence Reconstruction.py
│ └── f. MaxFlow - Maximum Number of Accepted Invitations.py
├── l. Design
│ ├── 0. Template
│ │ ├── LRU Cache (Algo).py
│ │ ├── LRU_Cache.py
│ │ ├── generator.py
│ │ └── iterator.py
│ ├── 1_Min_Stack.cpp
│ ├── 1_Shuffle_an_Array.cpp
│ ├── 2_Design_Tic-Tac-Toe.cpp
│ ├── 2_Encode_and_Decode_TinyURL.cpp
│ ├── 2_Flatten_2D_Vector.cpp
│ ├── 2_Insert_Delete_GetRandom_O(1).cpp
│ ├── 2_Range_Sum_Query_2D-Mutable.cpp
│ ├── 2_Serialize_and_Deserialize_Binary_Tree.cpp
│ ├── 3_Implement_Trie_(Prefix_Tree).cpp
│ ├── 3_LRU_Cache.cpp
│ ├── a. File System - Design In-Memory File System.py
│ ├── a. File System - Read N Characters Given Read4 Multi-Call.py
│ ├── a. File System - Read N Characters Given Read4.py
│ ├── a. File System - UTF-8 Validation.py
│ ├── a. Stack - Design Browser History.py
│ ├── a. Stack - Max Stack.py
│ ├── a. Stack - Min Stack.py
│ ├── b. Class - LFU Cache.py
│ ├── b. Class - Zigzag Iterator.py
│ ├── b. Queue - LRU Cache.py
│ ├── c. Stack - Maximum Frequency Stack.py
│ ├── d. Hash - Design Log Aggregation System.py
│ ├── d. Hash - Insert Delete GetRandom O(1).py
│ ├── d. Hash - Logger Rate Limiter.py
│ ├── d. Queue - Design Rate Limiting System.py
│ ├── e. Tree - Design Search Autocomplete System.py
│ ├── e. Tree - Serialize and Deserialize Binary Tree.py
│ ├── h. Application - Design A Leaderboard.py
│ ├── h. Application - Design Excel Sum Formula.py
│ ├── h. Application - Design Log Storage System.py
│ ├── h. Application - Design Twitter.py
│ ├── h. Application - Design Video Sharing Platform.py
│ ├── h. Application - Design a Food Rating System.py
│ ├── h. Application - Find Servers That Handled Most Number of Requests.py
│ ├── h. Application - Remove Comments.py
│ ├── h. Application - Stock Price Fluctuation.py
│ ├── h. Application - Tweet Counts Per Frequency.py
│ └── i. Network - IP to CIDR.py
├── m. Math
│ ├── 0. Template
│ │ ├── a. Operator - Division - Find All Divisor.py
│ │ ├── a. Operator - Division - GCD.py
│ │ ├── a. Operator - Division - LCM.py
│ │ ├── a. Operator - Division - Prime Factors.py
│ │ ├── a. Operator - Exponent - Binary Exponent.cpp
│ │ ├── a. Operator - Exponent - Power Modulus.cpp
│ │ ├── a. Operator - Factorial.cpp
│ │ ├── a. Operator - Factorial.py
│ │ ├── a. Operator - Multiplication - Multiply Two Large Numbers(Karatsuba).py
│ │ ├── a. Operator - Transpose.py
│ │ ├── b. Numbers - Binomial Coefficient.py
│ │ ├── b. Numbers - Catalan.py
│ │ ├── b. Numbers - Collatz - Test Collatz Conjecture.py
│ │ ├── b. Numbers - M-aryToDecimal.cpp
│ │ ├── b. Numbers - Pascal - Generate Pascal Triangle.py
│ │ ├── b. Numbers - Prime - Check Prime.cpp
│ │ ├── b. Numbers - Prime - Prime Factor.cpp
│ │ ├── b. Numbers - Prime - Sieve's Generate Prime.py
│ │ ├── b. Numbers - decimalToM-ary.cpp
│ │ ├── c. Geometry - Intersect Rectangle.py
│ │ ├── c. Probability - Combination.cpp
│ │ └── c. Probability - Permutation & Combination.cpp
│ ├── 01_Largest_Palindrome_Product.cpp
│ ├── 1_Count_Primes.cpp
│ ├── 1_Excel_Sheet_Column_Title.cpp
│ ├── 1_Pascals_Triangle.cpp
│ ├── 1_Pascals_Triangle_II.cpp
│ ├── 1_Power_of_Three.cpp
│ ├── 1_Power_of_Two.cpp
│ ├── 1_Roman_to_Integer.cpp
│ ├── 1_Self_Dividing_Numbers.cpp
│ ├── 2_Bulb_Switcher.cpp
│ ├── 2_Divide_Two_Integers.cpp
│ ├── 2_Evaluate_Reverse_Polish_Notation.cpp
│ ├── 2_Excel_Sheet_Column_Number.cpp
│ ├── 2_Factorial_Trailing_Zeroes.cpp
│ ├── 2_Fraction_to_Recurring_Decimal.cpp
│ ├── 2_Happy_Number.cpp
│ ├── 2_Next_Permutation.cpp
│ ├── 2_Pow(x,n).cpp
│ ├── 2_Sqrt(x).cpp
│ ├── 3_Largest_Number.cpp
│ ├── 3_Max_Points_on_a_Line.cpp
│ ├── a. Operator - Addition - Plus One.py
│ ├── a. Operator - Division - Fraction Addition and Subtraction.py
│ ├── a. Operator - Division - GCD - Smallest Integer Divisible by K.py
│ ├── a. Operator - Division - GCD - Water and Jug Problem (Die Hard).py
│ ├── a. Operator - Division - Minimum Factorization.py
│ ├── a. Operator - Division - Mininum Replacements to Sort the Array.py
│ ├── a. Operator - Power - Super Pow.py
│ ├── a. Operator - Sqrt - Sum of Square Numbers.py
│ ├── b. Number - Random - Implement Rand10 Using Rand7.py
│ ├── b. Numbers - Binary Coeff - Pascals Triangle II.py
│ ├── b. Numbers - Custom Sequence - Broken Calculator.py
│ ├── b. Numbers - Custom Sequence - Magical String.py
│ ├── b. Numbers - Custom Sequence - Nth Magical Number.py
│ ├── b. Numbers - Prime - Super Ugly Number.py
│ ├── c. Probability - New 21 Game.py
│ ├── c. Probability - Random Sampling - Linked List Random Node.py
│ ├── d. Other - Count - Integer to English Words.py
│ ├── d. Other - Geometry - Convex Polygon.py
│ ├── d. Other - Geometry - Detect Squares.py
│ ├── d. Other - Geometry - Valid Triangle Number.py
│ ├── d. Other - Knowledge - Day of the week.py
│ ├── d. Other - Knowledge - H-index.py
│ ├── d. Other - Math - Consecutive Numbers Sum.py
│ ├── d. Other - Math - Largest Multiple of Three.py
│ ├── d. Other - Math - Nth Digit.py
│ ├── d. Other - Math - Number of Digit One.py
│ ├── d. Other - Math - Rotate Function.py
│ ├── d. Other - Math - Sum of Numbers with Units Digit K.py
│ └── d. Other - Valid Number.py
└── n. Parallel Computing
├── Template
│ ├── Caching for a Multithreaded Dictionary (Bad Implementation).cpp
│ ├── Implement a Thread Pool.cpp
│ ├── Semaphore.cpp
│ ├── Two Synchronized Interleaving Threads.cpp
│ └── Two Unsynchronyzed Interleaved Threads.cpp
└── a. Deadlock - Traffic Light Controlled Intersection.py
28 directories, 896 files
``` </Details>