Open In App

DSA Crash Course | Revision Checklist with Interview Guide

Last Updated : 08 Mar, 2024
Improve
Improve
Like Article
Like
Save
Share
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:

Question Practice Problem
Kadane’s Algorithm Link
Given an array of size n and a number k, find all elements that appear more than n/k times Link
Merge overlapping intervals Link
Rotate matrix Link
Find the missing integer Link
Find Maximum Product Subarray Link
Find Missing And Repeating Link
Find the longest consecutive subsequence Link
Chocolate Distribution Problem Link

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:

Question Practice Link
Palindromic Substrings Link
Valid Parentheses Link
Palindrome Partitioning Link
Multiply Strings Link
Longest Common Subsequence Link
Count number of substrings Link
Search Pattern (KMP-Algorithm) Link
Edit Distance Link
Longest Valid Parenthesis Link
Print Anagrams together Link

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:

Question Practice
Detect cycle in a LinkedList – Floyd Algo Link
Print the Middle of a given linked list Link
Delete middle of linked list Link
Detect loop in linked list Link
Remove loop in linked list Link
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 size Link
Merge a linked list into another linked list at alternate positions. Link
Find nth node from the end of linked list Link

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:

Question Practice
Infix to Postfix Conversion using Stack Link
Evaluation of Postfix Expression Link
Reverse a String using Stack Link
Implement two stacks in an array Link
Check for balanced parentheses in an expression Link
Reverse a string using a stack data structure Link
Next Greater Element Link
The Celebrity Problem Link
Merge Overlapping Intervals Link
Largest Rectangular Area in a Histogram | Set 2 Link

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:

Question Practice
Implementation of Queue + Deque Link
Sliding window maximum Link
Breadth First Traversal or BFS for a Graph Link
Implement Level order in Binary tree Link
Implement Stack using Queues Link
LRU Cache Implementation Link
ZigZag Tree Traversal Link
Reverse a path in BST using queue Link
Implementation of Deque using doubly linked list Link
Implementation of Heap Data structure Link

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:

Question Practice
Tree Traversals Link
Level Order Tree Traversal Link
Level order traversal in spiral form Link
Diagonal Traversal of Binary Tree Link
Boundary Traversal of binary tree Link
Find Minimum Depth of a Binary Tree Link
Construct Tree from given Inorder and Preorder traversals Link
Construct a tree from Inorder and Level order traversals Link
Lowest Common Ancestor in a Binary Search Tree Link
Bottom View Binary Tree Link

 

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:

Question Practice
Construct BST from given preorder traversal | Set 1 Link
Construct BST from given preorder traversal | Set 2 Link
Binary Tree to Binary Search Tree Conversion Link
Sorted Linked List to Balanced BST Link
Sorted Array to Balanced BST Link
Transform a BST to greater sum tree Link
Construct all possible BSTs for keys 1 to N Link
Convert BST to Min Heap Link
Merge Two Balanced Binary Search Trees Link
Merge two BSTs with limited extra space Link

 

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:

Question Practice
BFS of Graph Link
DFS of Graph Link
Number of Provinces Link
Find the number of islands Link
Detect cycle in an undirected graph Link
Topological Sort Link
Course Schedule Link
Bipartite Graph Link
Rotten Oranges Link
Flood Fill Algorithm Link

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:

Question Practice
Implement Trie (Prefix Tree) Link
 Word Break Problem Link
Boggle Link
Longest Common Prefix using Trie Link
 Find the maximum subarray XOR in a given array Link
Count of distinct substrings of a string  Link
Find shortest unique prefix for every word in a given list   Link
Count inversions in an array Link

 

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:

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

 

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:

Question Practice
Find whether an array is subset of another array Link
Print all subarrays with 0 sum Link
Find a pair with given sum Link
Find Itinerary from a given list of tickets Link
Find the largest subarray with 0 sum Link
Count distinct elements in every window of size k Link
Find smallest range containing elements from k lists Link
Palindrome Substring Queries Link
Find missing elements of a range Link
Longest Consecutive Subsequence Link

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:

Question Practice
Given a string, print all possible palindromic partitions Link
Check if a number is Palindrome Link
Print all possible combinations of r elements in a given array of size n Link
Recursive function to delete k-th node from linked list Link
Print all leaf nodes of a Binary Tree from left to right Link
Print all increasing sequences of length k from first n natural numbers Link
Generate all binary strings without consecutive 1’s Link
Recursive Implementation of atoi() Link
Power Set in Lexicographic order Link
Sum triangle from array Link

 

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:

Question Practice
The Knight’s tour problem Link
Rat in a Maze Link
N Queen Problem Link
Subset Sum Link
Sudoku Link
Rat in a Maze with multiple steps or jump allowed Link
A backtracking approach to generate n bit Gray Codes Link
Print all palindromic partitions of a string Link
Remove Invalid Parentheses Link
N queen problem Link

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:

Question Practice
Longest Common Subsequence Link
Longest Increasing Subsequence Link
Edit Distance Link
Minimum Partition Link
Ways to Cover a Distance Link
Longest Path In Matrix Link
Subset Sum Problem Link
Optimal Strategy for a Game Link
0-1 Knapsack Problem Link
Boolean Parenthesization Problem Link
Coin Change Problem Link

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:

Question Practice
Activity Selection Problem Link
Find minimum time to finish all jobs with given constraints Link
Prim’s Minimum Spanning Tree Algorithm Link
Find maximum sum possible equal to sum of three stacks Link
Job Sequencing Problem Link
Greedy Algorithm to find Minimum number of Coins Link
Connect n ropes with minimum cost Link
Fractional Knapsack Problem Link
K Centers Problem Link
Minimum Number of Platforms Required for a Railway/Bus Station Link

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:

Question Practice
Searching an element in a sorted array Link
Search an element in a sorted and rotated array Link
Count the triplets
Maximum no of 1’s row Link
Count Inversions Link
Find triplets with zero-sum Link
Minimum Platforms Link
Wave Array Link
Find Kth Smallest/Largest Element In Unsorted Array Link
Minimum Swaps to Sort Link

 

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:

Question Practice
Wildcard Pattern Matching Link
Z algorithm Link
Pattern Searching Link

 

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:

Question Practice
Binary Search Link
Merge Sort Link
Quick Sort Link
Count Inversions Link
Calculate pow(x, n) Link
Closest Pair of Points Link
Median of two sorted arrays Link
Find a peak element in a given array Link
Allocate minimum number of pages Link
Search element in a sorted matrix Link

 

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:

Question Practice
Modular Exponentiation Link
Fibonacci Numbers Link
Modular multiplicative inverse Link
Primality Test | Set 2 (Fermat Method) Link
Euler’s Totient Function Link
Sieve of Eratosthenes Link
Convex Hull Link
Basic and Extended Euclidean algorithms Link
Segmented Sieve Link
Chinese remainder theorem Link
Lucas Theorem Link

 

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:

Question Practice
Maximum Subarray XOR Link
Magic Number Link
Sum of bit differences among all pairs Link
Swap All Odds And Even Bits Link
Find the element that appears once Link
Binary representation of a given number Link
Count total set bits in all numbers from 1 to n Link
Rotate bits of a number Link
Count number of bits to be flipped to convert A to B Link
Find Next Sparse Number Link

Related posts:

Some other important Tutorials:

 



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads