Open In App
Related Articles

SDE SHEET – A Complete Guide for SDE Preparation

Improve Article
Save Article
Like Article

What is SDE Sheet?

SDE Sheet is a list of the most important topics or the most popular questions that are asked in the Software Development Engineer Interviews.


    How is this sheet different or better from others?

  • It doesn’t contain only coding questions.
  • It covers all the segments round-wise like MCQs, DSA (Coding Questions), CS Subjects, Puzzles, System Design, Projects.
  • It is helpful for both – Freshers and Experienced.

Table of Contents/Roadmap


Build a Perfect Resume

The sole purpose of a resume is to make you land your dream job. It introduces your qualifications, skills, achievements, and everything regarding your expertise. It helps you land into your career. When you have a perfect resume, nothing can be a hindrance to the best job.
Create and Know how to build a perfect Resume – Free Resume Builder By GeeksforGeeks – Create Resume Online

Multiple Choice Questions (MCQs)


Data Structures and Algorithms

Keep a track of all the DSA problems mentioned below – Practice SDE Sheet
Check out the tutorial videos for all of the problems listed below – SDE Sheet Videos. We will continue to add videos on a daily basis.

An array is a collection of items stored at contiguous memory locations. The idea is to store multiple items of the same type together.

Leaders in an arrayViewSolveWatch
Equilibrium pointViewSolveWatch
Sort an array of 0s, 1s and 2sViewSolveWatch
Reverse array in groupsViewSolveWatch
Convert array into Zig-Zag fashionViewSolveWatch
Rearrange array alternativelyViewSolveWatch
Missing number in arrayViewSolveWatch
K-th element of two sorted ArraysViewSolveWatch
Check if two arrays are equal or notViewSolveWatch
Kadane’s AlgorithmViewSolveWatch
Subarray with given sumViewSolveWatch
Trapping Rain WaterViewSolveWatch
Minimum PlatformsViewSolveWatch
Stock buy and sellViewSolveWatch
Largest Number formed from an ArrayViewSolveWatch
Largest subarray with 0 sumViewSolveWatch
Swapping pairs make sum equalViewSolveWatch

Searching and Sorting

Binary SearchViewSolveWatch
Quick SortViewSolveWatch
Merge SortViewSolveWatch
Merge two sorted arraysViewSolveWatch
Inversion of ArrayViewSolveWatch
Search in a Rotated ArrayViewSolveWatch
Sorting Elements of an Array by FrequencyViewSolveWatch
Sum of Middle Elements of two sorted arraysViewSolveWatch
K’th smallest elementViewSolveWatch
Allocate minimum number of pagesViewSolveWatch


First element to occur k timesViewSolveWatch
Find the element that appears once in sorted arrayViewSolveWatch
Number of pairsViewSolveWatch
Find all pairs with a given sumViewSolveWatch
Common elementsViewSolveWatch
Find all four sum numbersViewSolveWatch
Count distinct elements in every windowViewSolveWatch
Array Pair Sum Divisibility ProblemViewSolveWatch
Longest consecutive subsequenceViewSolveWatch
Array Subset of another arrayViewSolveWatch
Zero Sum SubarraysViewSolveWatch
Relative SortingViewSolveWatch

A matrix represents a collection of numbers arranged in an order of rows and columns. It is necessary to enclose the elements of a matrix in parentheses or brackets.

Rotate a matrixViewSolveWatch
Spirally traversing a matrixViewSolveWatch
Search in a row wise and column wise sorted matrixViewSolveWatch
Print all palindromic paths from top left to bottom right in a matrixViewSolveWatch
Find the row with maximum number of 1sViewSolveWatch
Find median in row wise sorted matrixViewSolveWatch
Check if all rows of a matrix are circular rotations of each otherViewSolveWatch

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’.

Find first repeated characterViewSolveWatch
Reverse words in a given stringViewSolveWatch
Check if string is rotated by two placesViewSolveWatch
Roman Number to IntegerViewSolveWatch
Remove DuplicatesViewSolveWatch
Longest Distinct Characters in the stringViewSolveWatch
Implement AtoiViewSolveWatch
Implement strstrViewSolveWatch
Rabin Karp AlgorithmViewSolveWatch
KMP AlgorithmViewSolveWatch
Convert a Sentence into its equivalent mobile numeric keypad sequence.ViewSolveWatch
Longest Common PrefixViewSolveWatch
Smallest window in a string containing all the characters of another stringViewSolveWatch
Uncommon charactersViewSolveWatch
Minimum indexed characterViewSolveWatch

Recursion and Backtracking

Recursion: The process in which a function calls itself directly or indirectly is called recursion and the corresponding function is called as recursive function.
Backtracking: Backtracking is an algorithmic-technique for solving problems recursively by trying to build a solution incrementally, one piece at a time, removing those solutions that fail to satisfy the constraints of the problem at any point of time (by time, here, is referred to the time elapsed till reaching any level of the search tree).

Recursively remove all adjacent duplicatesViewSolveWatch
Tower Of HanoiViewSolveWatch
Special KeyboardViewSolveWatch
Permutations of a given stringViewSolveWatch
N-Queen ProblemViewSolveWatch
Solve the SudokuViewSolveWatch
Rat in a Maze ProblemViewSolveWatch
Word BoggleViewSolveWatch
Generate IP AddressesViewSolveWatch

Bit Manipulation
Bit Manipulation is a technique used in a variety of problems to get the solution in an optimized way.

Find first set bitViewSolveWatch
Rightmost different bitViewSolveWatch
Check whether K-th bit is set or notViewSolveWatch
Toggle bits given rangeViewSolveWatch
Set kth bitViewSolveWatch
Power of 2ViewSolveWatch
Bit DifferenceViewSolveWatch
Rotate BitsViewSolveWatch
Swap all odd and even bitsViewSolveWatch
Count total set bitsViewSolveWatch
Longest Consecutive 1’sViewSolveWatch
Sparse NumberViewSolveWatch
Alone in a coupleViewSolveWatch
Maximum subset XORViewSolveWatch

Stack and Queue

Stack: A stack is a linear data structure in which elements can be inserted and deleted only from one side of the list, called the top. A stack follows the LIFO (Last In First Out) principle.
Queue: A queue is a linear data structure in which elements can be inserted only from one side of the list called rear, and the elements can be deleted only from the other side called the front. The queue data structure follows the FIFO (First In First Out) principle.

Parenthesis CheckerViewSolveWatch
Merge Overlapping IntervalsViewSolveWatch
Stock span problemViewSolveWatch
Next larger elementViewSolveWatch
Largest Rectangular Area in a HistogramViewSolveWatch
Queue using two StacksViewSolveWatch
Stack using two queuesViewSolveWatch
Get minimum element from stackViewSolveWatch
LRU CacheViewSolveWatch
Circular tourViewSolveWatch
First non-repeating character in a streamViewSolveWatch
Rotten OrangesViewSolveWatch
Maximum of all subarrays of size kViewSolveWatch

Linked List
A Linked list is a linear data structure, in which the elements are not stored at contiguous memory locations.

Finding middle element in a Linked listViewSolveWatch
Reverse a Linked listViewSolveWatch
Rotate a Linked ListViewSolveWatch
Reverse a Linked List in groups of given sizeViewSolveWatch
Intersection point in Y shaped Linked listsViewSolveWatch
Detect Loop in Linked listViewSolveWatch
Remove loop in Linked ListViewSolveWatch
n’th node from end of Linked listViewSolveWatch
Flattening a Linked ListViewSolveWatch
Merge two sorted Linked listsViewSolveWatch
Pairwise swap of a Linked listViewSolveWatch
Add two numbers represented by Linked listsViewSolveWatch
Check if Linked List is PalindromeViewSolveWatch
Implement Queue using Linked ListViewSolveWatch
Implement Stack using Linked ListViewSolveWatch
Given a Linked list of 0s, 1s and 2s, sort itViewSolveWatch
Delete without head pointerViewSolveWatch

Binary Tree
A tree whose elements have at most 2 children is called a binary tree. Since each element in a binary tree can have only 2 children, we typically name them the left and right child.

Height of Binary TreeViewSolveWatch
Number of leaf nodesViewSolveWatch
Check if given Binary Tree is Height Balanced or NotViewSolveWatch
Write Code to Determine if Two Trees are Identical or NotViewSolveWatch
Given a binary tree, check whether it is a mirror of itselfViewSolveWatch
Maximum Path SumViewSolveWatch
Print Left View of Binary TreeViewSolveWatch
Print Bottom View of Binary TreeViewSolveWatch
Print a Binary Tree in Vertical OrderViewSolveWatch
Diameter of a Binary TreeViewSolveWatch
Level order traversal in spiral formViewSolveWatch
Connect Nodes at Same LevelViewSolveWatch
Convert a given Binary Tree to Doubly Linked ListViewSolveWatch
Serialize and Deserialize a Binary TreeViewSolveWatch

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.
Check for BSTViewSolveWatch
Lowest Common Ancestor in a BSTViewSolveWatch
Ceil in BSTViewSolveWatch
K-th Largest Element in BSTViewSolveWatch
Largest BST in Binary TreeViewSolveWatch
Merge Two Balanced Binary Search TreesViewSolveWatch
Sorted Array to Balanced BSTViewSolveWatch

Greedy Approach
Greedy is an algorithmic paradigm that builds up a solution piece by piece, always choosing the next piece that offers the most obvious and immediate benefit.

Activity SelectionViewSolveWatch
N meetings in one roomViewSolveWatch
Coin PilesViewSolveWatch
Maximize ToysViewSolveWatch
Page Faults in LRUViewSolveWatch
Largest number possibleViewSolveWatch
Minimize the heightsViewSolveWatch
Minimize the sum of productViewSolveWatch
Huffman DecodingViewSolveWatch
Minimum Spanning TreeViewSolveWatch

Dynamic Programming
Dynamic Programming is mainly an optimization over plain recursion. Wherever we see a recursive solution that has repeated calls for same inputs, we can optimize it using Dynamic Programming.

Minimum number of CoinsViewSolveWatch
Longest Common SubstringViewSolveWatch
Longest Increasing SubsequenceViewSolveWatch
Longest Common SubsequenceViewSolveWatch
0 – 1 Knapsack ProblemViewSolveWatch
Maximum sum increasing subsequenceViewSolveWatch
Minimum number of jumpsViewSolveWatch
Edit DistanceViewSolveWatch
Coin Change ProblemViewSolveWatch
Subset Sum ProblemViewSolveWatch
Longest Palindrome in a StringViewSolveWatch
Form a PalindromeViewSolveWatch
Box StackingViewSolveWatch
Rod CuttingViewSolveWatch
Min Cost PathViewSolveWatch
Minimum sum partitionViewSolveWatch
Count number of ways to cover a distanceViewSolveWatch
Egg Dropping PuzzleViewSolveWatch

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

Heap SortViewSolveWatch
Find median in a streamViewSolveWatch
Operations on Binary Min HeapViewSolveWatch
Rearrange charactersViewSolveWatch
Merge K sorted Linked listsViewSolveWatch
Kth smallest element in a row-column wise sorted matrixViewSolveWatch

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.

Depth First TraversalViewSolveWatch
Breadth First TraversalViewSolveWatch
Detect cycle in undirected graphViewSolveWatch
Detect cycle in a directed graphViewSolveWatch
Topological sortViewSolveWatch
Find the number of islandsViewSolveWatch
Implementing DijkstraViewSolveWatch
Minimum SwapsViewSolveWatch
Strongly Connected ComponentsViewSolveWatch
Shortest Source to Destination PathViewSolveWatch
Find whether path existViewSolveWatch
Minimum Cost PathViewSolveWatch
Circle of StringsViewSolveWatch
Floyd WarshallViewSolveWatch
Alien DictionaryViewViewWatch
Snake and Ladder ProblemViewSolveWatch

Trie is an efficient information retrieval data structure. Using Trie, search complexities can be brought to optimal limit (key length).

Trie | (Insert and Search)ViewSolveWatch
Trie | (Delete)ViewSolveWatch
Print unique rows in a given Binary matrixViewSolveWatch
Counting the number of words in a TrieViewSolveWatch
Longest Common Prefix using TrieViewSolveWatch
Auto-complete feature using TrieViewSolveWatch
Boggle | Set 2 (Using Trie)ViewSolveWatch
Minimum XOR Value PairViewSolveWatch
Palindrome pair in an array of words (or strings)ViewSolveWatch

Operating System
An operating system acts as an intermediary between the user of a computer and computer hardware. The purpose of an operating system is to provide an environment in which a user can execute programs conveniently and efficiently.
Below links contains complete Operating System Study Material:


Database is a collection of inter-related data which helps in efficient retrieval, insertion and deletion of data from database and organizes the data in the form of tables, Links, schemas, reports etc.
Below Links contains complete DBMS study Material:


SQL stands for Structured Query Language. It is a language used to interact with the database, i.e to create a database, to create a table in the database, to retrieve data or update a table in the database.
Below Links contains complete SQL study Material:


Computer Networks
A computer network is a system that connects numerous independent computers in order to share information (data) and resources. The integration of computers and other different devices allows users to communicate more easily.
Below Links contains complete Computer Networks study Material:


Puzzles are one of the ways to check your problem-solving skills. These are tricky questions that let you think logically.
Try to solve these 20 most popular puzzles asked in Interviews
Thoroughly revise all the work you have done till now in your projects. The grilling about projects can sometimes be very deep. Also, choose your words before you speak. Mention only those topics where you think you are fine to be grilled upon.
If you haven’t made a project then take an idea from GFG Projects and start working on it.
System Design
System Design is the process of designing the architecture, components, and interfaces for a system so that it meets the end-user requirements. System Design for tech interviews is something that can’t be ignored!
Almost every IT giant whether it be Facebook, Amazon, Google, or any other ask various questions based on System Design concepts such as scalability, load-balancing, caching, etc. in the interview.

This specifically designed System Design tutorial will help you to learn and master System Design concepts in the most efficient way from basics to advanced level.

Note: We will start uploading videos soon.

Bonus SDE Sheets

You can prepare for several types of interviews here. For instance, if you want to prepare for a Google interview, we have an SDE sheet specifically designed for that purpose. Here we attached the links to the top 5 product based and top 5 Service based preparation SDE Sheets.


Like Article
Save Article
Similar Reads
Related Tutorials