Data Structures and Algorithms
Welcome to TheAlgorist.com: a one-stop-shop for mastering data structures and algorithms and building solid problem solving skill. Most textbooks do a phenomenal job at giving you great theoretical knowledge but often lack implementation details and hands-on coding experiences. TheAlgorist.com will bridge that gap. What makes our product different is our pragmatic approach to give you an in-depth knowledge on practical applications of each and every data structure and algorithm by solving real-world problems in minimal amount of time. You do not need to go on solving hundreds of problems in order to become proficient. Our curated list of problems below will help you build the thought process required to become a great problem solver and achieve success in as little time as possible. Have upcoming interviews at big tech companies and/or tech start-ups? We have got you covered!!
Browse by Topic
Free / Preview Chapters Dynamic Programming Graph Theory Backtracking Binary Search Tree Sliding Window Union Find Heap Shortest Path Algorithms Bit Manipulation Linked List Applications Sweep Line Technique Interesting Concepts Trie Reservoir Sampling Concurrent Programming Video Lessons
Backtracking Algorithm - II:
Combinatorics
Power Set
Power Set w/ Duplicates
Permutations
Palindrome Permutation
Permutations
w/ Divisibility
Permutations
w/ Duplicates
Combinations
Combination Sum
Combination Sum 2
Combination Sum 3
Sliding Window
Core Concept
Minimum Window
Substring
Grumpy Shopkeeper
Longest Substring w/ Atmost
Two Distinct Characters
Longest Substring w/ Atmost
K Distinct Characters
Longest Substring
Without Repeating
Characters
Find All Anagrams
Substring
w/ Concatenation
of All Words
Repeated DNA Sequences
Limitations
Job Scheduling Problems
Sequential Job Scheduling
Parallel Job Scheduling
Parallel Job Scheduling
w/ Relative Deadlines
Union-Find or Disjoint Set Union
Fundamentals
Longest Consecutive
Sequence
Number of Islands
Accounts Merge
Redundant Connection
Number of Provinces
Valid Tree
Linked List
Representation of Linked List Linked List Complexity Linked List Operations Traverse a Linked List Insert Elements to a Linked List Delete from a Linked List Search an Element on a Linked List Sort Elements of a Linked List Deleting a Node from a Singly Linked List The "Runner" Technique
Dynamic Programming:
Unbounded
Knapsack Concept
Core Concept
Coin Change:
Minimum no. of Coins
Coin Change: Total
Combinations Possible
Combination Sum
Combination Sum Count
Dynamic Programming:
State Machine Approach
Core Concept
Stock Trading
w/ Cooldown
Max Profit w/ Unlimited
Stock Trade Transactions
Stock Trading w/
Transaction Fee
Max Profit w/ at most
2 Stock Trade Transactions
Max Profit w/ at most
K Stock Trade Transactions
Max Profit w/ at most
1 Stock Trade Transaction
Dynamic Programming:
Longest
Increasing Subsequence
Core Concept
Box Stacking
Russian Doll Envelopes
Largest Divisible Subset
Longest String Chain
Best Team with No Conflict
Longest Bitonic
Subsequence
Dynamic Programming:
All possible Cuts
in all possible Intervals
for the Last Operation
Core Concept
Matrix Chain Multiplication
or, Parenthesization
Optimal Binary Search Tree
Minimum Palindrome
Partitioning
Burst Balloons
Dynamic Programming:
Kadane's Algorithm
Core Concept
Maximum Product
Subarray
Best Time to Buy
& Sell Stock
Dynamic Programming:
2-Strings Problems
Core Concept
Longest Common
Substring
Longest Common
Subsequence
Shortest Common
Supersequence
Interleaving String
Edit Distance
Dynamic Programming:
1-String Problem
Core Concept
Palindrome
Longest Palindromic
Substring
Longest Palindromic
Subsequence
Minimum Palindrome
Partitioning
Minimum Palindromic
Insertion
Dynamic Programming:
Other Techniques
Optimal Path(s) to Target
Minimum Cost Tickets
Counting DP
Unique Paths
Unique Paths Without
Obstructions
Decision Making Approach
House Robber
Maximal Square
See what all great accomplishments our customers have achieved by using our products:
Get 25% Discount