Data Structures and Algorithm Design

Crack toughest coding interviews

Interviews Preparation : Crack Coding Interviews of Google & Amazon.

96+ hours targeted preparation.

Data Structures and algorithms


Recursion Explained in Detail


Mastering Recursion Probelms


Course Overview

Become an expert problem solver : with 96+ hours targeted course to Master Problem Solving Skill.
Course skills : Problem Solving with Data Structures and Algorithm Design
Get ready to crack tougest coding interviews : of FAANG and other product based companies.
Learn Advance Coding concepts : Get ready for the competitions like ACM-ICPC, Google Codejam and more..
On-Demand doubt clearing session : LIVE session from course mentors.
Programming Language of Course : C/C++/JAVA/Python : Complete Focus on DSA and problem solving, So programming language does not make any difference.Student can code in any language.
Communication Language of Course: ENGLISH
180+ Handpicked Top Problems : 96+ Hours Video Content
LEARN AT YOUR PACE : You have access to course videos for 4 Months + 1 Months that gives you flexibility to learn at your own pace and do a lot of practice to become master in DSA.

Course Detail

Total 41 Recorded Sessions

List of 180 + problems covered in the course
Recursion Class-1 : Introduction to Recursion in depth, Time/Space complexity.
  • Problem 1: No of ways to fill 2*N strip by 2*1 bricks.
  • Problem 2: No of ways to reach Nth ladder. Using Memorization to reduce Time Complexity as Top Down DP technique.
  • Problem 3: Total nos of n digit binary no with no consecutive 1's.
  • Problem 4: Total ways to move from top left to right down in a 2D array by taking only right or down step at a time.
  • Problem 5: Largest water body size in 2D matrix of 0/1. 0 indicate water and 1 indicate land. water bodies are connected as up, down, left and right way..
  • Problem 6: No of possible balanced binary trees for height N, using identical nodes..
Recursion Class - 2
  • Problem1- No of possible binary trees from N identical nodes. Using memorization as Top Down Dynamic Programming.
  • Problem2- Collect maximum coins by moving either right, down or diagonal from top left of a 2D grid to it down right. Using memorization to reduce time complexity.
  • Problem3- Above problem, extra condition there is different cost to take right, down or diagonal step and there are also hurdles(non accessible points) in the grid.
  • Problem4- Count (or print) all valid string using N left and N right parentheses.
  • Problem5- Print all valid paths of a robot within a grid. Robot can take K steps in all 4 direction without repeating a position.
  • Problem6- Fill Sudoku. All possible solutions. Some initial values are given as filled as input.
Recursion/Sorting Class - 3 ......
  • Problem1- Merge Sort.
  • Problem2- Quicksort.
  • Problem3- All permutations.
  • Problem4- All sub sets.
  • Problem5- All K size sub sets.
Recursion Class - 4
  • Problem1- All 6 digit phone nos.
  • Problem2- All Phone Mnemonics for a given no.
  • Problem3- All inversion pairs in an integer array.
Recursion Class - 5
  • Problem1- All positions of non attacking queens.
  • Problem2- Fill the sudoku puzzle.
Amortized cost
  • Calculating amortized cost of algorithms
Arrays/Strings-Problem Solving - Class - 1
  • Problem1- Name search suggestions in mobile (Trie).
  • Problem2- Search words in Crossword.
  • Problem3- Majority element in sorted array.
  • Problem4- Majority element in unsorted array.
  • Problem5- Gas station to complete entire trip.
  • Problem6- Max sum submatrix in a given 2D integer matrix.
  • Problem7- Median of 2 sorted array of same size.
  • Problem8- Median (or Kth smallest element) of 2 sorted array of different size.
Problem Solving (miscellaneous) - Class - 2
  • Problem1- Find span of all stocks.
  • Problem2- Max j-i where value at j index is greater than value at i index, in integer array.
  • Problem3- Find loop in linked list. Position of join.
  • Problem4- Find two non repeated elements in an array.
  • Problem5- Using single linked list as DLL using XOR feature.
  • Problem6- Clone a linked list with random pointer.
  • Problem7- Max integer by concatenation of N integers given as strings.
  • Problem8- Implement LRU cache.
  • Problem9- Pruning a binary tree. Prune all remaining nodes if path_sum is greater than K from root to nodes.
  • Problem10- Maximum difference between node and its ancestor in Binary Tree.
Arrays/Strings-Problem Solving - Class 3
  • Problem1- Max profit from buy and sell stock once.
  • Problem2- Rain water collected in a histogram structure.
  • Problem3- Maximum Sum sub-array in an integer array.
  • Problem4- Count of all sub-array having sum as K.
  • Problem5- In an array which has only 1 & 0 values, count all the sub-array which has equal number of 1's and 0's.
  • Problem6- Count of all sub-array which sum is a multiple of K.
Problem Solving (miscellaneous) - Class 4
  • Problem1- Count of all Top to Down paths which has K sum, in a Binary Tree.
  • Problem2- Rotate a N*N square integer matrix to 90 degree clockwise.
  • Problem3- Print a 2D integer array's elements in spiral order.
  • Problem4- Rotate an integer array by K elements without using extra space.
  • Problem5- Reverse the sequence of words in a given string without using extra space.
  • Problem6- Find a value in a row-wise and column-wise sorted 2D array.
  • Problem7- Find the celebrity using party data as 2D boolean matrix.
Stack and Queue
  • Problem1- Implement queue by 2 stacks.
  • Problem2- Print the nearest smaller element at the left side for every element of input integer array.
  • Problem3- Find size of largest rectangle area formed by histogram given in integer array.
  • Problem4- Print Max of K size moving window from left to right within an integer array, for all the positions.
  • Problem5- implement Queue with getMax() feature.
  • Problem6- implement Stack with getMin() feature.
  • Problem7- Kth smallest (or K smallest elements) from an array in O(N) average time.
LinkedList (using Recursion Techniques)
  • Problem1- No of ways to reach nth ladder. 1,2,3 steps.
  • Problem2- Recursion technique in merge sort.
  • Problem3- Merge two sorted Linked list.
  • Problem4- Pairwise reverse of a linked list.
  • Problem5- Reverse linked list (both using recursion and iteration).
  • Problem6- Reverse linked list in K size blocks.
  • Problem7- Check if list is a palindrome.
  • Problem8- Check if 2 list are merging into one. Find point of merger.
  • Problem9- No of different binary tree created from N identical nodes.
Binary Tree(BST) - Class 1
  • Problem1- Find max node, max leaf, max single parent etc.
  • Problem2- Check if a binary tree is a Sum Tree.
  • Problem3- Check if a binary tree is BST.
Binary Tree(BST) - Class 2
  • Problem1- Level order traversal of Binary Tree.
  • Problem2- Sum of multiples of values of same level for a Binary Tree.
  • Problem3- Left view of Binary Tree.
Binary Tree(BST) - Class 3
  • Problem1- First Common Ancestor(FCA) of a given node in a binary tree.
  • Problem2- Distance b/w any two given nodes in a binary tree.
Binary Tree(BST) - Class 4
  • Problem1- First Common Ancestor(FCA) of a given node in a binary tree.
  • Problem2- Distance b/w any two given nodes in a binary tree.
  • Problem1- Max size of Perfect Binary Tree as a sub tree of given Binary Tree.
  • Problem2- Check if the given binary tree is a Complete Binary Tree.
  • Problem3- Max size of Complete Binary Tree as a sub tree of given Binary Tree.
  • Problem4- Max size of BST as a subtree of a given Binary Tree.
  • Problem5- Create a balanced BST from a sorted array.
  • Problem6- Create a Binary Tree from its Inorder and Preorder traversal.
  • Problem7- Serialize and Deserialize a Binary Tree.
  • Problem8- Check if Binary Tree T1 is a subtree of a larger Binary Tree T2.
Binary Tree(BST) - Class 5
  • Problem1- Maximum path sum between 2 leaves in a Binary tree.
  • Problem2- Maximum path sum between any two nodes in a Binary tree.
Binary Tree(BST) - Class 6
  • Problem1- Binary Tree Zig-Zag traversal level by level.
  • Problem2- Print all nodes at K distance from a given node in a Binary Tree.
Binary Tree(BST) - Class 7
  • Problem1- Left View of a Binary Tree.
  • Problem2- Level by level all left views of a Binary Tree.
  • Problem3- Top view of a Binary Tree.
Binary Tree(BST) - Class 8
  • Problem1- Set vertical child reference for every node of Binary Tree.
  • Problem2- Vertical view of Binary Tree, layer by layer.
Binary Tree(BST) - Class 9
  • Problem1- Top view of Binary Tree, layer by layer.
  • Problem2- Total full node Binary Trees from N identical nodes.
Binary Tree(BST) - Class 10
  • Problem1- Merge 2 BSTs.
  • Problem2- BST to sorted DLL.
  • Problem3- Merge to sorted DLLs.
  • Problem4- Create balanced BST from sorted DLL.
Binary Tree(BST) - Class 11
  • Problem1- Balance BST by re-swapping two swapped nodes.
  • Problem2- Kth Max sum pair, min sum pair.
  • Problem3- Kth max diff pair, min diff pair.
  • Problem4- Next larger no in a BST.
  • Problem5- Preorder traversal, without recursion.
  • Problem6- Inorder traversal, without recursion.
Binary Tree(BST) - Class 12
  • Problem1- Binary Tree post order traversal without recursion.
  • Problem2- Pair with sum K in a Binary Search Tree.
  • Problem3- Serialize a Binary Tree into single String. Create Binary Tree from that serialize String.
Binary Tree(BST) - Class 13
  • Problem1- No of different sequences to create the given BST.
  • Problem2- Longest increasing subsequence. (Recursion solution).
Heap - Class - 1
  • Problem1- Heap introduction, Heapify method.
  • Problem2- Make Heap from an integer array.
  • Problem3- Heap Sort Algorithm.
  • Problem4- K nearest galaxies.
Heap - Class - 2
  • Problem1- Heap methods. Add, Delete, Percolate Up.
  • Problem2- Minimum cost of concatenating N strings.
  • Problem3- Merge N sorted array.
Heap - Class - 3
  • Problem1- K smallest elements in an array.
  • Problem2- Kth smallest in row wise & column wise sorted 2D array.
  • Problem3- Nth largest in a max heap.
  • Problem4- Nth number in a Ugly no series.
Heap - Class - 4
  • Problem1- Median in a stream of numbers.
  • Problem2- Total sub array whose sum is divisible by k.
Heap - Class - 5
  • Problem1- Compare kth largest in a max heap.
  • Problem2- Check if the binary tree is max heap.
Dynamic Programming - Class - 1
  • Problem1- No of binary sequences with no consecutive 0's.
  • Problem2- Paint N fences with X colours.
    A- No two fences with same colour.
    B- No more than two fences with same colour.
  • Problem3- Longest palindromic sub-string.
Dynamic Programming - Class - 2
  • Problem1- [DP] maximum profit by cutting rod.
  • Problem2- [DP] minimum notes needed to exchange currency.
  • Problem3- [DP] minimum steps needed to convert a given integer to 1.
Dynamic Programming - Class - 3
  • Problem1- [DP] minimum notes to make sum k.
  • Problem2- [DP] total height balanced binary tree for height N.
  • Problem3- [DP] total different BSTs from N different numbers.
Dynamic Programming - Class - 4
  • Problem1- Find k smallest numbers (or kth smallest) in an integer array.
  • Problem2- Convert an integer array into alternative peak & valley.
  • Problem3- [DP] Find if any subset is making sum K, from a given integer array.
Dynamic Programming - Class - 5
  • Problem1- [DP] Longest Common Sub-sequence(LCS) of two given strings.
  • Problem2- [DP] Edit Distance between two strings.
Dynamic Programming - Class - 6
  • Problem1- [DP] Max sum increasing subsequence.
  • Problem2- [DP] Russian doll Problem.
  • Problem3- [DP] Knapsack 0/1 .
  • Problem4- Max profit by buying & selling stock once.
  • Problem5- [DP] Max profit by buying & selling stock twice.
  • Problem6- [DP] Max profit by buying & selling stock N times.
Dynamic Programming - Class - 7
  • Problem1- [DP] minimum coins to exchange currency. Same value coins could be repeated.
  • Problem2- [DP] longest nested cuboids/ 3d containers.
  • Problem3- [DP] longest possible rectangular stack. its allowed to rotate rectangle board.
  • Problem4- [DP] Matrix chain multiplication.
  • Problem5- [DP] Largest palindromic sub-sequence.
  • Problem6- [DP] Max value in coin game.
Dynamic Programming - Class - 8
  • Problem1- [DP] Split N numbers in 2 groups having same average.
  • Problem2- [DP] Optimize BST with minimum search cost.
  • Problem3- [DP] Find if a string could be made by concatenation of dictionary words.
  • Problem4- [DP] Maximize coin collection by 2 robots.
Dynamic Programming - Class - 9
  • Problem1- [DP] Max profit from stealing. No consecutive houses.
  • Problem2- [DP] Minimum efforts to finish all tasks. No to consecutive skips.
  • Problem3- [DP] No of ways to paint N fences by C colours. No more that 2 consecutive fences with same colours.
  • Problem4- [DP] Minimum cost to paint N fences by C colours. No more that 2 consecutive fences with same colours.
  • Problem5- [DP] Max length Square in 0/1 grid with all 1's.
  • Problem6- [DP] Max size rectangle in 0/1 grid with all 1's.
Dynamic Programming - Class - 10
  • Problem1- [PS] 100 floors. 2 eggs.
  • Problem2- [DP] N floor, K eggs.
  • Problem3- [DP] Total count of string s2 as sub-sequence within string s1.
  • Problem4- [DP] N patients & D doctors. Assign consecutive patients to same doctor. Minimize cost.
  • Problem5- [DP] Probability to find majority in parliament.
Graph - Class - 1
  • Problem1- Graph Introduction. Depth First Search, Breath First Search.
  • Problem2- Minimum distance from source to destination in a Grid.
  • Problem3- Rat in a maze Problem. Find the way out.
  • Problem4- Days to rotten all tomatoes.
  • Problem5- Minimum steps to reach a number N from 0 on number line.
  • Problem6- Minimum steps to reach a destination word from a source word by editing only one character at a time. All intermediate words should be in the given dictionary.
Graph/Greedy Algorithms - Class - 2
  • Problem1- [DP] Longest Arithmetic Sequence.
  • Problem2- Topological sort.
  • Problem3- Dijkstra algorithm (Single source shortest paths).
  • Problem4- Minimum Spanning Tree - Prim's algorithms.
  • Problem5- Minimum Spanning Tree - Kruskal's algorithms.
  • Problem6- Floyd–Warshall algorithm - All source-destination pairs shortest paths.

Course Fee and Payment Process

  • Go through Demo Class videos : Like the videos and want to join the course !
  • Pay Full Fee (₹6,000) : Get instant access to full course videos.
  • First go through demo videos and if you like the videos, make the payment for full access. After payment No Refund of any kind.
Duration of Video Access : 6 Months Months that gives you flexibility to learn at your own pace.

Course Content

Data Structures
  • Arrays
  • Strings
  • Matrices
  • Stacks
  • Queues/ Monotonic Queues
  • Linked List
  • Binary Tree/ BST
  • Segment Tree
  • Trie
  • Priority Queues/Heaps
  • Hashes
  • Graphs
  • and more...
  • Understanding complexity(time/space) of an algorithm/course
  • Big O notation
  • Brute Force Approach
  • Backtracking/ Recursion
  • Sliding Window
  • Trial & Error Methods
    • Binary search algorithm and when to apply
    • Learning concept and learn to identify that a problem can be solved using BS
    • Tips to avoid edge cases and overflow and underflow
    • Practice interview problems and how to go test correct.
      Merge sort and Quick sort and what problems can be solved with them?
    • Concept and how things change at scale
    • How to optimize further with tricks?
    • Practice interview problems
      Dynamic programming approach : How to think in DP?
    • How to identify a problem to be a DP problem
    • How to change recursive to DP
    • Practice interview problems
      Greedy approach
    • Which problems can be solved using greedy method
    • How to get complexity of it
    • Practice interview problems
      Backtracking approach
    • What template all problems follow?
    • How to fit your problems in that template?
    • Practice interview problems
  • Understanding execution of recursive functions
  • How to scale a solution once you got it right?
  • Improving time and space complexity
    How to effectively handle:
  • Corner cases
  • Invalid inputs
  • Recursion termination conditions
  • Logical errors
  • Memory Leaks
  • Test cases
  • How to start solutioning?
  • Do and Don’ts in interviews
  • What are bare minimum for a solution?
  • When to start optimizations?
  • When to think of scale and complexity analysis?

Learn from the experts


Amar Chauhan

From Google

Course summary

  Pre-Requisites Basic knowledge of Data Structures
  Mode Online Course
   Start-Date Every Week
  Schedule Learn at Your Pace
  Duration 96+ Hours
  Mentors Amar Chauhan from Google
Need More Information,Please Write to Us


180+ Problems


250+ Problems


96 Hours




₹ 15,000 ₹6,000/-


My Story

I remember the day when I joined DSA course of IT Bodhi at ABES campus,then joining Google was a distant dream. DSA course helped me a lot to improve my Coding skills and boosted my confidence to appear and crack coding interviews of any product companies. First Amazon and now Google ,yeah that is a DREAM COME TRUE. I would say if you are rightly skilled and guided in the right direction then all goals are achievable.

Shobhit Kumar Sharma

Placed at Google

Before Joining IT Bodhi, I was not even close to competitive programming. I had never thought that I was good enough to crack the coding interviews of tech Giants, but Amar Sir Guided coaching and practice made it all possible. Joining the course was the best decision,I made in my four years of engineering. I strongly recommend Data Structures and Algorithm Design course to everyone who wants to improve courseming skills and get the dream job.

Vasu Arora

Placed at Amazon

I could have never been imagined that placements can be a cake walk if i had never been at IT Bodhi. Cracking coding interviews and getting placed in tech giants was a far reached dream till I got the guidance from Amar Sir who made Data Structures and Algorithms so easy to understand with practical implementation. Along with his incomparable knowledge, his teaching style and patience motivated me to challenge myself, thus automatically enhancing problem solving skills. Hence I was able to crack interviews of Kronos and finally AMAZON. I can not thank Amar Sir , Ajay Sir and IT Bodhi enough for bringing out the best from me through thier constant support, encouragement and most importantly the best quality of training. Joining IT Bodhi was the best decision of my college life. Highly recommended to every student who wants to crack big giants.

Sajal Subodh

Placed at Amazon

Joining IT Bodhi was certainly the best decision which I’ll remember throughout rest of my life and to learn under Amar sir was the last thing I could have expected but it happened. The guy with a zero background in coding overnight turned out to be a hero when I got placed in Amazon and the credit goes to Amar sir. I initially didn’t expect much from the coaching but things changed over the time. I became more positive and felt more confident about myself because my mentor believed in me. He told me that when we undermine ourselves, we cannot achieve the things we are aiming for so always keep your head high and just practice to achieve what you want. From teaching me for the technical rounds to preparing me for the interviews, Amar sir was a perfect mentor and for that, I still do not have any words to thank him. Amazing environment for targeted preparation.

Paras Arora

Placed at Amazon

Amar Sir really helped me to learn problem solving skills which are foremost to crack any interview problem. Classroom notes helped me at last minute to revise all important problems which are most probable to ask in interviews. Interviews preparation at IT Bodhi before my placement was a great decision.

Priyanshi Sharma

Placed at Adobe

It was an amazing learning experience at IT Bodhi, It actually gave me a major push towards competitive programming and that's how I came closure to getting placed at Geekforgeeks in campus placement. Amar Sir at IT Bodhi is the few most helping and knowledgeable teacher, I have ever met.

Bhavna Sharma

Placed at GeekForGeeks

Learning Coding and getting dream job is something that IT Bodhi offers. Data Structures and Algorithm Design course and Amar Sir are unmatchable in DSA course. Most of the interview questions asked in DSA rounds were from class notes only. DSA course improved my coding skill as well as my confidance to crack coding interviews of interviewBit.

Prabhat Shukla

Placed at interviewBit

Always wanted to learn advance coding and my seniors told me about IT Bodhi who were placed at top product companies after taking DSA course at IT Bodhi. And yes that came out to be the best decision to join DSA course and finally got placed at one of my dream company Morgan Stanely.

Mansi Mehta

Placed at Morgan Stanley

Frequently Asked Questions

  • I am a B.Tech student from CS/IT/ECE in 3rd-4th year.
    Should I join this course?

    Coding is the prime skills that makes huge difference in placement. This is a must do course for all 3rd-4th year students becuase placement is near and this is the right time to prepare for your dream placement in Google, Amazon, Microsoft and other product companies, high paying start-ups. Prime focus of this course is to make students ready to crack coding interviews of all top recuiters in-campus or off-campus.

  • I am a B.Tech student from CS/IT/ECE in 1st-2nd year.
    Should I join this course?

    Start coding as early as possible and take your coding to the next level with focused preparation and expert guidence. Coding gives you the definite edge over other students in getting internship and placement with your dream company. If you think you are a basic programmer then we advise you to join Programming Foundation course of duration 2 months and later join this advance course.

  • I am a B.Tech student from Non CS/IT/ECE branch.
    Should I join this course and will it help me?

    Definitely you should join this course if you have basic programming and DSA skills and want to crack high end IT companies. If you think you do not have basic programming skills, do not worry and start coding now and join Programming Foundation course of duration 2 months and later join this advance course.

  • Is this course personalized for me?

    Yes,definitely the course is personalized for each and every individual. Course is designed by experts and lectures are very interactive to make learning interesting and engaging.

  • Which programming language would be used?

    Course is language independent and focuses on 'Coding & Problem Solving Skills with Advance DSA'. You can write code in any language you are comfortable with.

  • I am an industry professional with 0-2 years of expereince. Should I join this course?

    This is the right course for all entry level professionals who want to change the domain and switch from service company to a high paying product company.