Data Structures and Algorithms
An exclusive live course with hands-on coding, covering each topic from scratch, implementing it throughly, and solving lots of coding problems from different coding platforms.
- Starting from July 31, 2022
- 9:00 pm to 11:30 pm IST on Weekends
Do you find yourself not getting any intuition behind the solution?
Do you find yourself feeling stuck everytime you look at a new problem?
Welcome to the Data Structures and Algorithms live course. This is a prime and begineer to intermediate level course aimed at providing an exclusive and top-notch learning experience. The course will cover entire Data Structures and Algorithms required for Software Engineering Interviews.
The program will have a blend of Live Classes happening on Weekends, 1:1 Mentorship Sessions, Teaching Assistant's Support and Assessments. The program is designed to be intense and crisp to accelerate learning.
What will you be offered as a part of this course?
About the course
Meet your Instructors
Analysis of Algorithms
Asymtotic Notations (Big-O, Omega, Theta)
Time analysis through problems (Iterative and Recursive)
Space analysis through problems (Iterative and Recursive)
Factorial and Fibonacci
GCD & LCM
Prime Numbers & Sieve of Eratosthenes
Palindrome Numbers and Armstrong Numbers
Odd Even Bits
Get, Set, Clear, Update ith Bit
Clear Range of Bits
Understanding Bits Through Coding Problems
Static and Dynamic Arrays
Operations on Arrays and Strings
Diving deep into Binary Search Pattern
Using in-built sort() function in different programming languages
Introduction to Prefix Sum and its Use
Running Sum of 1d Array
Sum of All Odd Length Subarrays
Range Sum Query - Immutable
Traversal (Row-wise, Column-wise, Spiral, Boundary, Snake)
Operations on Matrix (Addition, Subtraction, and Multiplication)
Transpose and Rotation
2-D Pattern Printing
Binary Search on Matrix
Introduction to Hashing and its Applications
Hashing Setup, Insertion, Re-hashing, Search, Erase
Maximum Sum Subarray of Size K
Smallest Subarray With a Given Sum
Longest Substring with K Distinct Characters
Longest Substring with Same Letters after Replacement
Introduction to Linked List
Difference between Array and Linked List with Applications
Types of Linked List
Operations on Singly Linked List (Insert, Delete, Search, Traverse)
Operations on Doubly Linked List (Insert, Delete, Search, Traverse)
Operations on Circular Linked List (Insert, Delete, Search, Traverse)
Reverse of a Linked List (Iterative and Recursive)
Merge Two Sorted Linked List (Iterative and Recursive)
Merge k Sorted Lists
Copy List with Random Pointer
Reverse Nodes in k-Group
Introduction to Two Pointers
Pair With Target Sum
Squaring a Sorted Array
Triplet Sum to Zero
Triplet Sum Close to Target
Triplets With Smaller Sum
Dutch National Flag Problem
Middle of Linked List
Loop Detection in a Linked List
Start of a Loop in a Linked List
Introduction to Stack and its Applications
Design Stack Using Array (push(), pop(), and top())
Design Stack Using Linked List (push(), pop(), and top())
Understanding Stack Internally
Problems related to Infix, Postfix, and Prefix Expressions
Nearest Next Greater (or Smaller) Element to Right (or Left)
Stock Span Problem
Smallest Subsequence of Distinct Characters
Most Competitive Subsequence
Remove Duplicate Letters
Max Area Histogram
Introduction to Queue and its Applications
Implement Queue Using Array (enqueue() and dequeue())
Implement Queue Using Linked List (enqueue() and dequeue())
Queue Using Stack
Introduction to Circular Queue
Queue Using Stack
Introduction to Deque
Sliding Window Maximum (Minimum)
Introduction to Recursion and its Applications
Diving Deeper into Recursion - Activation Records
Parameterized and Functional Recursion
Tower of Hanoi Problem
Introduction to Binary Tree and its Applications
Implementing Binary Tree
Depth First Search
Preorder Traversal (Recursive and Iterative)
Inorder Traversal (Recursive and Iterative)
Postorder Traversal (Recursive and Iterative)
Height of a Binary Tree
Check if Binary Tree is balanced or not
Binary Tree Path Sum
All Paths for a Sum
Sum of Path Numbers
Path With Given Sequence
Breadth First Search (Level Order Traversal)
Reverse Level Order Traversal
Right (Left) View of a Binary Tree
Top (Bottom) View of a Binary Tree
Boundary Traversal of a Binary Tree
Least Common Ancestor (LCA) of a Binary Tree
Diameter of a Binary Tree
Burning Binary Tree
Nodes at a distance of K
Insertion and Deletion in BST
Check for BST
Find Kth Smallest in a BST
Pair Sum With Given BST
Fix BST with Two Nodes Swapped
Ceiling of a Key in BST
Least Common Ancestor (LCA) in BST
Introduction to Graph and its Applications
Breadth First Search on Graph and its Applications
Depth First Search on Graph and its Applications
Dijkstra's Algorithm (Shortest Path Algorithm)
Bellman-Ford (Shortest Path Algorithm)
Floydd Warshall's Algorithm
Introduction to Spanning Tree (and Minimum Spanning Tree)
Prim's Algorithm for finding MST
Introduction to Disjoint Set (Union/Find)
Implement Disjoint Set (Union/Find)
Kruskal's Algorithm for finding MST
Connected Components (Kosaraju's Algorithm)
10+ Live Coding Problems
10+ Practice Problems
Introduction to Heap and its Applications
Understanding Heaps and Priority Queues
Insert in Min-Heap (Max-Heap)
Delete in Min-Heap (Max-Heap)
Understanding Top-K Pattern
Introduction to Greedy Algorithms and its Applications
Minimum Cost to Move Chips to The Same Position
Maximum Units on a Truck
Minimum Cost of Buying Candies With Discount
Introduction to Backtracking and its Applications
Difference between Recursion and Backtracking
Generate all Balanced Parenthesis
Generate all Permutations of a String
Introduction to Dynamic Programming and its Applications
Key Terminologies of Dynamic Programming
Understanding, How Recursion helps us build DP Solution?
Nth Tribonacci Numbers
Min Cost Climbing Stairs
Best Time to Buy and Sell Stock
Count Sorted Vowel Strings
0-1 Knapsack Problem
Longest Common Subsequence
Rod Cutting Problem
Coin Change Problem
Mock Interview with Industry Experts
You should be comfortable with the basics of any one programming language (C++, Java, or Python).
- The course is live with 1:1 interaction.
- We have TA support (24x7) for your doubts.
- This is a complete package to crack product-based companies.
- You will get a chance to get a referral from our Alumni network.
- This is a complete hands-on coding course and not just theory.
We have Doubt Support for resolving your doubts. So, In case if you miss any class, you can approach your respective TA and get your doubts resolved. If the doubt is still not resolved, then your instructors will be there for you. There will be no recordings available.
Once you are enrolled in the course, you can attend the first two classes and decide whether you want to continue with the course or not. The fees is refundable only if you decide to leave the course in first two classes.
Yes, you can! This course is flexible and designed for weekends.
Yes, you will get a certificate.
These classes will happen on Zoom.
We will be providing the code in three languages i.e. C++, Java, and Python.
Meet your Instructors
Innoskrit Live is started with a mission to provide the best recorded live top-notch learning experience with 1-1 mentorship. We teach how to figure out the pattern hidden in the problem, apply certain algorithm, and solve it. We wish to bring an ultimate learning experience for you.
©2022 Innoskrit. All rights reserved.