Open In App
Related Articles

DSA Crash Course | Revision Checklist with Interview Guide

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

Prepare for your upcoming interview with confidence using our comprehensive DSA Revision Checklist Crash Course. This DSA Crash Course not only helps you brush up on key DSA topics but also includes valuable insights for acing technical interviews. Elevate your technical skills and enhance your interview performance with this essential DSA Crash Course.

DSA Crash Course

DSA Crash Course

This comprehensive resource offers a meticulous review of crucial Data Structures and Algorithms concepts, serving as the perfect pre-interview refresher. From fundamental data structures to advanced algorithms, this DSA Revision Checklist ensures you’re well-prepared for the technical challenges that lie ahead.

Below are the topics we will be covering in this article:

Data Structures Last Minute Notes | DSA Crash Course

Let us begin with the Data Structures in our DSA Revision Checklist:

1. Array

An array is a collection of items of same data type stored at contiguous memory locations.

Apart from definitions there are other important topics on Array that you must prepare/revise before the technical Coding round, such as:

Along with these, below are a list of must do problems on Array for this DSA Crash Course:

QuestionPractice Problem
Kadane’s AlgorithmLink
Given an array of size n and a number k, find all elements that appear more than n/k timesLink
Merge overlapping intervalsLink
Rotate matrixLink
Find the missing integerLink
Find Maximum Product SubarrayLink
Find Missing And RepeatingLink
Find the longest consecutive subsequenceLink
Chocolate Distribution ProblemLink

Apart from these, there are other interview questions on Array that you should know about. 

 

2. String

Strings are defined as an array of characters. The difference between a character array and a string is the string is terminated with a special character ‘\0’.

Apart from definitions, there are other important topics on String that you must prepare/revise before the technical Coding round, such as:

Along with these, below are a list of must-do problems on String for this DSA Crash Course:

QuestionPractice Link
Palindromic SubstringsLink
Valid ParenthesesLink
Palindrome PartitioningLink
Multiply StringsLink
Longest Common SubsequenceLink
Count number of substringsLink
Search Pattern (KMP-Algorithm)Link
Edit DistanceLink
Longest Valid ParenthesisLink
Print Anagrams togetherLink

Apart from these, there are other interview questions on String that you should know about.
Top Interview Coding Question

 

3. LinkedList

A linked list is a linear data structure, Unlike arrays, linked list elements are not stored at a contiguous location. it is basically chains of nodes, each node contains information such as data and a pointer to the next node in the chain. In the linked list there is a head pointer, which points to the first element of the linked list, and if the list is empty then it simply points to null or nothing.

Apart from definitions, there are other important topics on LinkedList that you must prepare/revise before the technical Coding round, such as:

 Along with these, below are a list of must-do problems on the Linked list for this DSA Crash Course:

QuestionPractice
Detect cycle in a LinkedList – Floyd AlgoLink
Print the Middle of a given linked listLink
Delete middle of linked listLink
Detect loop in linked listLink
Remove loop in linked listLink
Rotate a linked list.Link
Write a function to reverse the nodes of a linked list.Link
Reverse a Linked List in groups of given sizeLink
Merge a linked list into another linked list at alternate positions.Link
Find nth node from the end of linked listLink

Apart from these, there are other interview questions on Linked list that you should know about.
Top Interview Coding Question

 

4. Stack

Stack is a linear data structure in which insertion and deletion are done at one end this end is generally called the top. It works on the principle of Last In First Out (LIFO) or First in Last out (FILO). LIFO means the last element inserted inside the stack is removed first. FILO means, the last inserted element is available first and is the first one to be deleted.

Apart from definitions, there are other important topics on Stack that you must prepare/revise before the technical Coding round, such as:

Along with these, below are a list of must-do problems on Stack for this DSA Crash Course:

QuestionPractice
Infix to Postfix Conversion using StackLink
Evaluation of Postfix ExpressionLink
Reverse a String using StackLink
Implement two stacks in an arrayLink
Check for balanced parentheses in an expressionLink
Reverse a string using a stack data structureLink
Next Greater ElementLink
The Celebrity ProblemLink
Merge Overlapping IntervalsLink
Largest Rectangular Area in a Histogram | Set 2Link

Apart from these, there are other interview questions on Stack that you should know about.
Top Interview Coding Question

 

5. Queue

A Queue is a linear structure that follows a particular order in which the operations are performed. The order is First In First Out (FIFO). It is similar to the ticket queue outside a cinema hall, where the first person entering the queue is the first person who gets the ticket.

Apart from definitions there are other important topics on Queue that you must prepare/revise before the technical Coding round, such as:

Along with these, below are a list of must-do problems on Queue for this DSA Crash Course:

QuestionPractice
Implementation of Queue + DequeLink
Sliding window maximumLink
Breadth First Traversal or BFS for a GraphLink
Implement Level order in Binary treeLink
Implement Stack using QueuesLink
LRU Cache ImplementationLink
ZigZag Tree TraversalLink
Reverse a path in BST using queueLink
Implementation of Deque using doubly linked listLink
Implementation of Heap Data structureLink

Apart from these, there are other interview questions on Queue that you should know about.
Top Interview Coding Question

 

6. Tree

A tree is non-linear and a hierarchical data structure consisting of a collection of nodes such that each node of the tree stores a value and a list of references to other nodes (the “children”).

Apart from definitions there are other important topics on Tree that you must prepare/revise before the technical Coding round, such as:

Along with these, below are a list of must-do problems on tree for this DSA Crash Course:

QuestionPractice
Tree TraversalsLink
Level Order Tree TraversalLink
Level order traversal in spiral formLink
Diagonal Traversal of Binary TreeLink
Boundary Traversal of binary treeLink
Find Minimum Depth of a Binary TreeLink
Construct Tree from given Inorder and Preorder traversalsLink
Construct a tree from Inorder and Level order traversalsLink
Lowest Common Ancestor in a Binary Search TreeLink
Bottom View Binary TreeLink

 

7. Binary Search Tree

Binary Search Tree is a node-based binary tree data structure which has the following properties:

  • The left subtree of a node contains only nodes with keys lesser than the node’s key.
  • The right subtree of a node contains only nodes with keys greater than the node’s key.
  • The left and right subtree each must also be a binary search tree.

Apart from definitions, there are other important topics on Binary Search Tree that you must prepare/revise before the technical Coding round, such as:

Along with these, below are a list of must-do problems on Binary search tree for this DSA Crash Course:

QuestionPractice
Construct BST from given preorder traversal | Set 1Link
Construct BST from given preorder traversal | Set 2Link
Binary Tree to Binary Search Tree ConversionLink
Sorted Linked List to Balanced BSTLink
Sorted Array to Balanced BSTLink
Transform a BST to greater sum treeLink
Construct all possible BSTs for keys 1 to NLink
Convert BST to Min HeapLink
Merge Two Balanced Binary Search TreesLink
Merge two BSTs with limited extra spaceLink

 

8. Graph

A Graph is a non-linear data structure consisting of nodes and edges. The nodes are sometimes also referred to as vertices and the edges are lines or arcs that connect any two nodes in the graph. More formally a Graph can be defined as, A Graph consisting of a finite set of vertices(or nodes) and a set of edges that connect a pair of nodes.

Apart from definitions there are other important topics on Graph that you must prepare/revise before the technical Coding round, such as:

Some important Graph Algorithm:

Along with these, below are a list of must-do problems on Graph for this DSA Crash Course:

QuestionPractice
BFS of GraphLink
DFS of GraphLink
Number of ProvincesLink
Find the number of islandsLink
Detect cycle in an undirected graphLink
Topological SortLink
Course ScheduleLink
Bipartite GraphLink
Rotten OrangesLink
Flood Fill AlgorithmLink

Apart from these, there are other interview questions on Array that you should know about.
Top Interview Coding Question

 

9. Trie

Trie data structure is defined as a Tree based data structure that is used for storing some collection of strings and performing efficient search operations on them. The word Trie is derived from retrieval, which means finding something or obtaining it.

Trie follows some property that If two strings have a common prefix then they will have the same ancestor in the trie. A trie can be used to sort a collection of strings alphabetically as well as search whether a string with a given prefix is present in the trie or not.

Apart from definitions, there are other important topics on Trie that you must prepare/revise before the technical Coding round, such as:

Along with these, below are a list of must-do problems on Trie for this DSA Crash Course:

QuestionPractice
Implement Trie (Prefix Tree)Link
 Word Break ProblemLink
BoggleLink
Longest Common Prefix using TrieLink
 Find the maximum subarray XOR in a given arrayLink
Count of distinct substrings of a string Link
Find shortest unique prefix for every word in a given list  Link
Count inversions in an arrayLink

 

10. Heap

A Heap is a special Tree-based data structure in which the tree is a complete binary tree.

Apart from definitions, there are other important topics on Heap that you must prepare/revise before the technical Coding round, such as:

Along with these, below are a list of must-do problems on Heap for this DSA Crash Course:

QuestionPractice
Convert BST to Min HeapLink
K-th Largest Sum Contiguous SubarrayLink
Convert min Heap to max HeapLink
Merge k sorted arrays | Set 1Link
K’th Largest Element in an arrayLink
Connect n ropes with minimum costLink
Find k numbers with most occurrences in the given arrayLink
Minimum product of k integers in an array of positive IntegersLink
Sort a nearly sorted (or K sorted) arrayLink

 

11. Hash

Hashing refers to the process of generating a fixed-size output from an input of variable size using the mathematical formulas known as hash functions. This technique determines an index or location for the storage of an item in a data structure.

Apart from definitions there are other important topics on Hash that you must prepare/revise before the technical Coding round, such as:

Along with these, below are a list of must-do problems on Hash for this DSA Crash Course:

QuestionPractice
Find whether an array is subset of another arrayLink
Print all subarrays with 0 sumLink
Find a pair with given sumLink
Find Itinerary from a given list of ticketsLink
Find the largest subarray with 0 sumLink
Count distinct elements in every window of size kLink
Find smallest range containing elements from k listsLink
Palindrome Substring QueriesLink
Find missing elements of a rangeLink
Longest Consecutive SubsequenceLink

Apart from these, there are other interview questions on Heap that you should know about.
Top Interview Coding Question

Algorithms Last Minute Notes | DSA Crash Course

Let us now dive into the Algorithms in our DSA Revision Checklist:

12. Recursion

The process in which a function calls itself directly or indirectly is called recursion and the corresponding function is called a recursive function. 

Apart from definitions, there are other important topics on Recursion that you must prepare/revise before the technical Coding round, such as:

Along with these, below are a list of must-do problems on Recursion for this DSA Crash Course:

QuestionPractice
Given a string, print all possible palindromic partitionsLink
Check if a number is PalindromeLink
Print all possible combinations of r elements in a given array of size nLink
Recursive function to delete k-th node from linked listLink
Print all leaf nodes of a Binary Tree from left to rightLink
Print all increasing sequences of length k from first n natural numbersLink
Generate all binary strings without consecutive 1’sLink
Recursive Implementation of atoi()Link
Power Set in Lexicographic orderLink
Sum triangle from arrayLink

 

13. Backtracking

Backtracking can be defined as a general algorithmic technique that considers searching every possible combination in order to solve a computational problem. 

Apart from definitions, there are other important topics on Backtracking that you must prepare/revise before the technical Coding round, such as:

Along with these, below are a list of must-do problems on Backtracking for this DSA Crash Course:

QuestionPractice
The Knight’s tour problemLink
Rat in a MazeLink
N Queen ProblemLink
Subset SumLink
SudokuLink
Rat in a Maze with multiple steps or jump allowedLink
A backtracking approach to generate n bit Gray CodesLink
Print all palindromic partitions of a stringLink
Remove Invalid ParenthesesLink
N queen problemLink

Apart from these, there are other interview questions on Backtracking that you should know about.
Top Interview Coding Question

 

14. Dynamic Programming

Dynamic Programming (DP) is defined as a technique that solves some particular type of problems in Polynomial Time. Dynamic Programming solutions are faster than the exponential brute method and can be easily proved their correctness.

Apart from definitions, there are other important topics on Dynamic Programming that you must prepare/revise before the technical Coding round, such as:

Along with these, below are a list of must-do problems in Dynamic programming for this DSA Crash Course:

QuestionPractice
Longest Common SubsequenceLink
Longest Increasing SubsequenceLink
Edit DistanceLink
Minimum PartitionLink
Ways to Cover a DistanceLink
Longest Path In MatrixLink
Subset Sum ProblemLink
Optimal Strategy for a GameLink
0-1 Knapsack ProblemLink
Boolean Parenthesization ProblemLink
Coin Change ProblemLink

Apart from these, there are other interview questions on Dynamic Programming that you should know about.
Top Interview Coding Question

 

15. Greedy Algorithms

Greedy Algorithm is defined as a method for solving optimization problems by taking decisions that result in the most evident and immediate benefit irrespective of the final outcome. It works for cases where minimization or maximization leads to the required solution.

Apart from definitions, there are other important topics on Greedy Algorithms that you must prepare/revise before the technical Coding round, such as:

Along with these, below are a list of must-do problems in Greedy Algorithms for this DSA Crash Course:

QuestionPractice
Activity Selection ProblemLink
Find minimum time to finish all jobs with given constraintsLink
Prim’s Minimum Spanning Tree AlgorithmLink
Find maximum sum possible equal to sum of three stacksLink
Job Sequencing ProblemLink
Greedy Algorithm to find Minimum number of CoinsLink
Connect n ropes with minimum costLink
Fractional Knapsack ProblemLink
K Centers ProblemLink
Minimum Number of Platforms Required for a Railway/Bus StationLink

Apart from these, there are other interview questions on Greedy Algorithms that you should know about.
Top Interview Coding Question

 

16. Sorting and Searching

A Sorting Algorithm is used to rearrange a given array or list of elements according to a comparison operator on the elements. The comparison operator is used to decide the new order of elements in the respective data structure. Whereas searching is an algorithm to search some elements in the list of elements.

Apart from definitions, there are other important topics on Sorting and Searching that you must prepare/revise before the technical Coding round, such as:

Along with these, below are a list of must-do problems in Sorting and Searching for this DSA Crash Course:

QuestionPractice
Searching an element in a sorted arrayLink
Search an element in a sorted and rotated arrayLink
Count the tripletsLink
Maximum no of 1’s rowLink
Count InversionsLink
Find triplets with zero-sumLink
Minimum PlatformsLink
Wave ArrayLink
Find Kth Smallest/Largest Element In Unsorted ArrayLink
Minimum Swaps to SortLink

 

17. Pattern Searching

Pattern Searching algorithms are used to find a pattern or substring from another bigger string. There are different algorithms. The main goal to design these type of algorithms to reduce the time complexity. The traditional approach may take lots of time to complete the pattern searching task for a longer text.

Apart from definitions, there are other important topics on Pattern Searching that you must prepare/revise before the technical Coding round, such as:

Along with these, below are a list of must-do problems in Pattern Searching for this DSA Crash Course:

QuestionPractice
Wildcard Pattern MatchingLink
Z algorithmLink
Pattern SearchingLink

 

18. Divide and Conquer Algorithms

Divide and Conquer is an algorithmic paradigm in which the problem is solved using the Divide, Conquer, and Combine strategy.

Apart from definitions, there are other important topics on Divide and Conquer that you must prepare/revise before the technical Coding round, such as:

Apart from definitions, there are other important topics on Divide and Conquer that you must prepare/revise before the technical Coding round, such as:

QuestionPractice
Binary SearchLink
Merge SortLink
Quick SortLink
Count InversionsLink
Calculate pow(x, n)Link
Closest Pair of PointsLink
Median of two sorted arraysLink
Find a peak element in a given arrayLink
Allocate minimum number of pagesLink
Search element in a sorted matrixLink

 

19. Number Theory

Number theory is a branch of pure mathematics devoted to the study of the natural numbers and the integers. It is the study of the set of positive whole numbers which are usually called the set of natural numbers. As it holds the foundational place in the discipline, Number theory is also called “The Queen of Mathematics”.

Apart from definitions, there are other important topics on Number Theory that you must prepare/revise before the technical Coding round, such as:

Along with these, below are a list of must-do problems in Number Theory for this DSA Crash Course:

QuestionPractice
Modular ExponentiationLink
Fibonacci NumbersLink
Modular multiplicative inverseLink
Primality Test | Set 2 (Fermat Method)Link
Euler’s Totient FunctionLink
Sieve of EratosthenesLink
Convex HullLink
Basic and Extended Euclidean algorithmsLink
Segmented SieveLink
Chinese remainder theoremLink
Lucas TheoremLink

 

20. Bit Manipulation

The Bitwise Algorithms is used to perform operations at the bit-level or to manipulate bits in different ways. The bitwise operations are found to be much faster and are sometimes used to improve the efficiency of a program.

Apart from definitions, there are other important topics on Bit Manipulation that you must prepare/revise before the technical Coding round, such as:

Along with these, below are a list of must-do problems in Bit Manipulation for this DSA Crash Course:

QuestionPractice
Maximum Subarray XORLink
Magic NumberLink
Sum of bit differences among all pairsLink
Swap All Odds And Even BitsLink
Find the element that appears onceLink
Binary representation of a given numberLink
Count total set bits in all numbers from 1 to nLink
Rotate bits of a numberLink
Count number of bits to be flipped to convert A to BLink
Find Next Sparse NumberLink

Related posts:


Some other important Tutorials:


 



Last Updated : 11 Dec, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads