Solutions to AlgoExpert Problems in Six Programming Languages: Python, Java, Go, C++, C#, JavaScript/TypeScript
Discover solutions to AlgoExpert problems in six programming languages: Python, Java, Go, C++, C#, and JavaScript/TypeScript.
β Table of Contents:
- π’ -> Easy
- π΅ -> Medium
- π΄ -> Hard
- β« -> Very Hard
Problem Statement | Difficulty Level | Category | Solution Link | Website Link | |
---|---|---|---|---|---|
β | Two Number Sum | π’ | Arrays | Program.java | Link |
β | Validate Subsequence | π’ | Arrays | Program.java | Link |
β | Tournament Winner | π’ | Arrays | Program.java | |
β | Non-Constructible Change | π’ | Arrays | Program.java | Link |
β | Sorted Squared Array | π’ | Arrays | Program.java | Link |
β | Three Number Sum | π΅ | Arrays | Program.java | Link |
β | Smallest Difference | π΅ | Arrays | Program.java | Link |
β | Move Element To End | π΅ | Arrays | Program.java | Link |
β | Monotonic Array | π΅ | Arrays | Program.java | Link |
β | Spiral Traverse | π΅ | Arrays | Program.java | Link |
β | Longest Peak | π΅ | Arrays | Program.java | Link |
β | Array Of Products | π΅ | Arrays | Program.java | Link |
β | First Duplicate Value | π΅ | Arrays | Program.java | Link |
β | Merge Overlapping Intervals | π΅ | Arrays | Program.java | Link |
β | Four Number Sum | π΄ | Arrays | Program.java | Link |
β | Subarray Sort | π΄ | Arrays | Program.java | Link |
β | Largest Range | π΄ | Arrays | Program.java | Link |
β | Min Rewards | π΄ | Arrays | Program.java | Link |
β | Zigzag Traverse | π΄ | Arrays | Program.java | |
β | Apartment Hunting | β« | Arrays | Program.java | Link |
β | Calendar Matching | β« | Arrays | Program.java | Link |
β | Waterfall Streams | β« | Arrays | Program.java | Link |
β | Minimum Area Rectangle | β« | Arrays | Program.java | Link |
β | Line Through Points | β« | Arrays | Program.java | Link |
β | Palindrome Check | π’ | Strings | Program.java | Link |
β | Caesar Cypher Encryptor | π’ | Strings | Program.java | Link |
β | Run-Length Encoding | π’ | Strings | Program.java | Link |
β | Generate Document | π’ | Strings | Program.java | |
β | First Non-Repeating Character | π’ | Strings | Program.java | |
β | Longest Palindromic Substring | π΅ | Strings | Program.java | |
β | Group Anagrams | π΅ | Strings | Program.java | |
β | Valid IP Addresses | π΅ | Strings | Program.java | |
β | Reverse Words In String | π΅ | Strings | Program.java | |
β | Minimum Characters For Words | π΅ | Strings | Program.java | |
β | Longest Substring Without Duplication | π΄ | Strings | Program.java | |
β | Underscorify Substring | π΄ | Strings | Program.java | |
β | Pattern Matcher | π΄ | Strings | Program.java | |
β | Smallest Substring Containing | β« | Strings | Program.java | |
β | Longest Balanced Substring | β« | Strings | Program.java | |
β | Remove Duplicates From Linked List | π’ | Linked Lists | Program.java | |
β | Linked List Construction | π΅ | Linked Lists | Program.java | |
β | Remove Kth Node From End | π΅ | Linked Lists | Program.java | |
β | Sum of Linked Lists | π΅ | Linked Lists | Program.java | |
β | Find Loop | π΄ | Linked Lists | Program.java | |
β | Reverse Linked List | π΄ | Linked Lists | Program.java | |
β | Merge Linked Lists | π΄ | Linked Lists | Program.java | |
β | Shift Linked List | π΄ | Linked Lists | Program.java | |
β | LRU Cache | β« | Linked Lists | Program.java | |
β | Rearrange Linked List | β« | Linked Lists | Program.java | |
β | Linked List Palindrome | β« | Linked Lists | Program.java | |
β | Zip Linked List | β« | Linked Lists | Program.java | |
β | Node Swap | β« | Linked Lists | Program.java | |
β | Min Max Stack Construction | π΅ | Stacks | Program.java | |
β | Balanced Brackets | π΅ | Stacks | Program.java | |
β | Sunset Views | π΅ | Stacks | Program.java | |
β | Sort Stack | π΅ | Stacks | Program.java | |
β | Shorten Path | π΄ | Stacks | Program.java | |
β | Largest Rectangle Under Skyline | π΄ | Stacks | Program.java | |
β | Binary Search | π’ | Searching | Program.java | |
β | Find Three Largest Numbers | π’ | Searching | Program.java | |
β | Search In Sorted Matrix | π΅ | Searching | Program.java | |
β | Shifted Binary Search | π΄ | Searching | Program.java | |
β | Search For Range | π΄ | Searching | Program.java | |
β | Quickselect | π΄ | Searching | Program.java | |
β | Index Equals Value | π΄ | Searching | Program.java | |
β | Bubble Sort | π’ | Sorting | Program.java | |
β | Insertion Sort | π’ | Sorting | Program.java | |
β | Selection Sort | π’ | Sorting | Program.java | |
β | Three Number Sort | π΅ | Sorting | Program.java | |
β | Quick Sort | π΄ | Sorting | Program.java | |
β | Heap Sort | π΄ | Sorting | Program.java | |
β | Radix Sort | π΄ | Sorting | Program.java | |
β | Merge Sort | β« | Sorting | Program.java | |
β | Minimum Waiting Time | π’ | Greedy Algorithms | Program.java | |
β | Class Photos | π’ | Greedy Algorithms | Program.java | |
β | Tandem Bicycle | π’ | Greedy Algorithms | Program.java | |
β | Task Assignment | π΅ | Greedy Algorithms | Program.java | |
β | Valid Starting City | π΅ | Greedy Algorithms | Program.java | |
β | Min Heap Construction | π΅ | Heaps | Program.java | |
β | Continuous Median | π΄ | Heaps | Program.java | |
β | Sort K-Sorted Array | π΄ | Heaps | Program.java | |
β | Laptop Rentals | π΄ | Heaps | Program.java | |
β | Merge Sorted Arrays | β« | Heaps | Program.java | |
β | Kadane's Algorithm | π΅ | Famous Algorithms | Program.java | |
β | Dijkstra's Algorithm | π΄ | Famous Algorithms | Program.java | |
β | Topological Sort | π΄ | Famous Algorithms | Program.java | |
β | Knuth Morris Pratt Algorithm | β« | Famous Algorithms | Program.java | |
β | A* Algorithm | β« | Famous Algorithms | Program.java | |
β | Nth Fibonacci | π’ | Recursion | Program.java | |
β | Product Sum | π’ | Recursion | Program.java | |
β | Permutations | π΅ | Recursion | Program.java | |
β | Powerset | π΅ | Recursion | Program.java | |
β | Phone Number Mnemonics | π΅ | Recursion | Program.java | |
β | Staircase Traversal | π΅ | Recursion | Program.java | |
β | Lowest Common Manager | π΄ | Recursion | Program.java | |
β | Interweaving Strings | π΄ | Recursion | Program.java | |
β | Solve Sudoku | π΄ | Recursion | Program.java | |
β | Ambiguous Measurements | π΄ | Recursion | Program.java | |
β | Generate Div Tags | π΄ | Recursion | Program.java | |
β | Number Of Binary Tree Topologies | β« | Recursion | Program.java | |
β | Non Attacking Queens | β« | Recursion | Program.java | |
β | Find Closest Value In BST | π’ | Binary Search Trees | Program.java | |
β | BST Traversal | π΅ | Binary Search Trees | Program.java | |
β | BST Construction | π΅ | Binary Search Trees | Program.java | |
β | Validate BST | π΅ | Binary Search Trees | Program.java | |
β | Min Height BST | π΅ | Binary Search Trees | Program.java | |
β | Find Kth Largest Value In BST | π΅ | Binary Search Trees | Program.java | |
β | Reconstruct BST | π΅ | Binary Search Trees | Program.java | |
β | Validate Three Nodes | π΄ | Binary Search Trees | Program.java | |
β | Same BSTs | π΄ | Binary Search Trees | Program.java | |
β | Right Smaller Than | β« | Binary Search Trees | Program.java | |
β | Branch Sums | π’ | Binary Trees | Program.java | |
β | Node Depths | π’ | Binary Trees | Program.java | |
β | Invert Binary Tree | π΅ | Binary Trees | Program.java | |
β | Binary Tree Diameter | π΅ | Binary Trees | Program.java | |
β | Find Successor | π΅ | Binary Trees | Program.java | |
β | Height Balanced Binary Tree | π΅ | Binary Trees | Program.java | |
β | Max Path Sum In Binary Tree | π΄ | Binary Trees | Program.java | |
β | Find Nodes Distance K | π΄ | Binary Trees | Program.java | |
β | Iterative In-Order Traversal | β« | Binary Trees | Program.java | |
β | Flatten Binary Tree | β« | Binary Trees | Program.java | |
β | Right Sibling Tree | β« | Binary Trees | Program.java | |
β | All Kinds of Node Depths | β« | Binary Trees | Program.java | |
β | Compare Leaf Traversal | β« | Binary Trees | Program.java | |
β | Max Subset Sum No Adjacent | π΅ | Dynamic Programming | Program.java | |
β | Number Of Ways To Make Change | π΅ | Dynamic Programming | Program.java | |
β | Min Number Of Coins For Change | π΅ | Dynamic Programming | Program.java | |
β | Levenshtein Distance | π΅ | Dynamic Programming | Program.java | |
β | Number Of Ways To Traverse Graph | π΅ | Dynamic Programming | Program.java | |
β | Max Sum Increasing Subsequence | π΄ | Dynamic Programming | Program.java | |
β | Longest Common Subsequence | π΄ | Dynamic Programming | Program.java | |
β | Min Number of Jumps | π΄ | Dynamic Programming | Program.java | |
β | Water Area | π΄ | Dynamic Programming | Program.java | |
β | Knapsack Problem | π΄ | Dynamic Programming | Program.java | |
β | Disk Stacking | π΄ | Dynamic Programming | Program.java | |
β | Numbers In Pi | π΄ | Dynamic Programming | Program.java | |
β | Maximum Sum Submatrix | π΄ | Dynamic Programming | Program.java | |
β | Maximize Expression | π΄ | Dynamic Programming | Program.java | |
β | Max Profit With K Transactions | β« | Dynamic Programming | Program.java | |
β | Palindrome Partitioning Min Cuts | β« | Dynamic Programming | Program.java | |
β | Longest Increasing Subsequence | β« | Dynamic Programming | Program.java | |
β | Longest String Chain | β« | Dynamic Programming | Program.java | |
β | Square Of Zeroes | β« | Dynamic Programming | Program.java | |
β | Depth-First Search | π’ | Graphs | Program.java | |
β | Single Cycle Check | π΅ | Graphs | Program.java | |
β | Breadth-First Search | π΅ | Graphs | Program.java | |
β | River Sizes | π΅ | Graphs | Program.java | |
β | Youngest Common Ancestor | π΅ | Graphs | Program.java | |
β | Remove Islands | π΅ | Graphs | Program.java | |
β | Cycle In Graph | π΅ | Graphs | Program.java | |
β | Minimum Passes Of Matrix | π΅ | Graphs | Program.java | |
β | Boggle Board | π΄ | Graphs | Program.java | |
β | Rectangle Mania | β« | Graphs | Program.java | |
β | Airport Connections | β« | Graphs | Program.java | |
β | Detect Arbitrage | β« | Graphs | Program.java | |
β | Two-Edge Connected Graph | β« | Graphs | Program.java | |
β | Suffix Trie Construction | π΅ | Tries | Program.java | |
β | Multi String Search | π΄ | Tries | Program.java |
Pull requests and contributions are welcome. For major changes, please open an issue first to discuss what you would like to change.
Ensure to follow the guidelines and update tests as appropriate.
If you have any question or want to reach me directly, Contact Nsikak Imoh.