5.00 (1 reviews)
☑ Coding Interview Preparation
☑ Data Structure & Algorithms
This course will help you crack coding rounds and whiteboard coding rounds for IT companies. This is the only course with a special focus on problem-solving and visualization apart from theory for the most common data structures.
As a part of this course we will be covering each of the topics in two steps :
1. First we will understand the theory for each of the data structure and problem-solving technique.
2. Secondly, we will practice a lot of problems based on those topics. The goal is to build your thought process so that you are also able to solve new problems asked in interviews.
The whole course consists of more than 120 lectures divided across 12+ sections with the content updated periodically to reflect the latest industry trends and problems. We are going to be covering multiple different data structures like Arrays, Linked List, Stacks, Queues, Hash Table, Deque, Binary Search Tree, Tree, Heaps, Graphs, Disjoint Set Data Structure etc.
Apart from that, we are covering algorithms and problem-solving techniques like Binary search, binary search over range, binary search over partial sorted range, sliding window method, Two pointer method, greedy algorithms, dynamic programming, backtracking, bitmagic etc.
With over 22 hours of content + working code samples in 3 languages (Python, C++ & Java), this is the biggest and the most comprehensive course you will ever find anywhere and will certainly help you in cracking interviews.
With this course, you don't need anything else for interview preparation.
What is Algorithm Analysis ?
How do we analyze algorithms ?
What is Big-O Notation (with examples)
Types Of Time Complexities
Time Complexity Example #1
Time Complexity Example #2
Time Complexity Example #3 (Logarithmic)
Time Complexity Example #4 (Nested Loops)
What is space complexity ?
Space Complexity Example #1
Space Complexity Example #2 (Recursive)
How do arrays work ?
How do resizable arrays works?
Linked List - Insertion At Top
Linked List - Insertion At End
Linked List - Deletion At Top
Linked List - Deletion At End
Linked List - Two Pointer Approach #1
Linked List - Two Pointer Approach #2
Linked List - Two Pointer Approach #3
What is a hash table ?
Advantages Of Hash Table
Hash Table In Python
How is hash table implemented ?
Example Problem #1
Example Problem #2 - Theory
Example Problem #2 - Implementation
What is a stack ?
Stack Simple Problem
Stack Implementation As An Array
Stack Implementation As a Linked List
Applications Of Stack
Application #1 Evaluating Postfix Expressions
Application #2 Evaluating Prefix Expressions
Application #3 Converting Infix To Postfix/Prefix Expressions
Stack Problem #4
Stack Problem #5
What is queue ?
Types Of Queue
Queue Example Problem #1
Dequeue Example Problem #1
Sliding Window & Two Pointer Method
Sliding Window Method
Example Problem #1
Two Pointer Example #1
Two Pointer Example #2
Two Pointer Example #3
What is binary search ?
Binary Search Implementation
Binary Search Variations
Binary Search Problem #1 (Lower Bound & Upper Bound)
Binary Search Problem #2
Binary Search Over Range Example #1
Binary Search Over Range Example #2
Binary Search Over Range Example #3
Binary Search Over Partial Sorting
Binary Search Over Range Example #4
What are trees ?
Terms related to trees
Types Of Trees
Height Balanced Binary Tree
Level Order Traversal
Level Order Traversal - Implementation
Pre Order Traversal
Pre Order Traversal - Implementation
Post Order Traversal
Post Order Traversal - Implementation
Tree Traversal Analysis
How to solve tree problems (Example #1) ?
Tree Problem Example #2
Tree Problem Example #3
Tree Problem Example #4
Tree Problem Example #5
What are heaps and why are they used ?
Why are heaps complete binary tree ?
Array implementation of heaps
Using Heaps In Python
Heap Problem #1
Heap Problem #2
Binary Search Tree
Binary Search Tree & Its Applications
Height Balanced BST
Inorder Successor & Predecessor
BST Problem #1
BST Problem #2
BST Problem #3
What is dynamic programming ?
Dynamic Programming Implementation Example
Top Down Dynamic Programming v/s Bottom up Dynamic Programming
Example Problem #1 Jump Game
Example Problem #2 Coin Change Problem
Example Problem #3 House Robber
Example Problem #4 Integer Break
Example Problem #5 - Longest Increasing Subsequence
Example Problem #6 - Rod Cutting Problem
Example Problem #7 Edit Distance
Example Problem #5 Longest Common Subsequence
Example Problem #9 - Longest Palindromic Subsequence
What are greedy algorithms ?
Greedy Algorithm Example #1 (Fractional Knapsack)
Greedy Algorithm Example #2 (Activity Selection)
Types Of Graphs
Graphs, Forests & Trees
Connected Components & Subgraphs
Graph Implementation - Adjacency Matrix
Graph Implementation - Adjacency List
DFS Application #1 - Detecting Cycle In A Graph
Topological Sorting Implementation
Topological Sorting Example #1
Shortest Path Problem
Single Source Shortest Path Problem
What is backtracking ?
Backtracking Example #1
Backtracking Example #2
Backtracking Example #3
Backtracking Example #4
Bit Magic & BitMasking
Bit Magic - Common Operators
Bit Magic - Problem #1
Bit Magic - Problem #2
Bit Magic - Problem #3
What is bitmask ?
Bitmask Fundamental Operations - Adding To Set
Fundamental Operation #2 - Checking If An Element Is In Set
Fundamental Operation #3 - Removing From Set
Fundamental Operation #4 - Toggling An Element In Set