Welcome to the Course
Course Introduction
Open
Complexity Analysis
Why Code Efficiency Matters
Open
Complexity Analysis
Measuring Code Efficiency
Open
Complexity Analysis
Time & Space Complexity
Open
Complexity Analysis
Trade-off between Space & Time
Open
Arrays & String
Introduction to Two Pointer
Open
Arrays & String
Two Pointer Deep Dive
Open
Arrays & String
Sliding Window Technique
Open
Arrays & String
Hands-on: Sliding Window Technique
Open
Arrays & String
Kadane's Algorithm
Open
Arrays & String
Hands-on: Kadane's Algorithm
Open
Sorting & Searching
Selection Sort
Open
Sorting & Searching
Hands-on: Selection Sort
Open
Sorting & Searching
Bubble Sort
Open
Sorting & Searching
Insertion Sort
Open
Sorting & Searching
Linear Search
Open
Sorting & Searching
Binary Search
Open
Sorting & Searching
Hands-on: Binary Search
Open
Sorting & Searching
Divide and Conquer Approach
Open
Sorting & Searching
Merge Sort
Open
Sorting & Searching
Hands-on: Merge Sort
Open
Sorting & Searching
Quick Sort
Open
Sorting & Searching
Hands-on: Quick Sort
Open
Sorting & Searching
ArrayList in Java
Open
Stack & Queue
Basics of Stack Data Structure
Open
Stack & Queue
Hands-on: Stack
Open
Stack & Queue
Queue Fundamentals
Open
Stack & Queue
Hands-on: Queue
Open
Stack & Queue
Types of Queue
Open
Linked Lists
Understanding Linked List
Open
Linked Lists
Types of Linked List
Open
Linked Lists
Hands-on: Linked List
Open
Linked Lists
Reversing a Linked List
Open
Hash Tables
Introduction to Hashing
Open
Hash Tables
Hash Table Data Structure
Open
Hash Tables
Building a Custom Hash Table from Scratch
Open
Hash Tables
HashSet in Java
Open
Hash Tables
HashMap in Java
Open
Recursion & Backtracking
Recap: Recursion
Open
Recursion & Backtracking
Nth Fibonacci Number
Open
Recursion & Backtracking
Hands-on : Nth Fibonacci Number
Open
Recursion & Backtracking
Recursion on Subsequence
Open
Recursion & Backtracking
Understanding Backtracking
Open
Recursion & Backtracking
N-Queens Problem
Open
Recursion & Backtracking
Hands-on: N-Queens Problem
Open
Greedy Approach
Introduction to Greedy Algorithms
Open
Greedy Approach
Fractional Knapsack
Open
Greedy Approach
Hands-on: Fractional Knapsack
Open
Dynamic Programming (DP)
Introduction to Dynamic Programming
Open
Dynamic Programming (DP)
Nth Fibonacci Number
Open
Dynamic Programming (DP)
Hands-on: Nth Fibonacci Number
Open
Dynamic Programming (DP)
Maximum Sum of Non-Adjacent Element
Open
Dynamic Programming (DP)
Ninja's Training
Open
Dynamic Programming (DP)
Grid Unique Path
Open
Dynamic Programming (DP)
0/1 Knapsack
Open
Trees
Introduction to Tree
Open
Trees
Introduction to Binary Tree
Open
Trees
Binary Tree Representation
Open
Trees
Hands-On: Binary Tree Representation
Open
Trees
Binary Tree Traversal : DFS
Open
Trees
Binary Tree Traversal : BFS
Open
Trees
Binary Search Tree (BST)
Open
Heap & Priority Queue
Introduction to Heap
Open
Heap & Priority Queue
Heap Fundamentals
Open
Heap & Priority Queue
Hands-on: Heap Fundamentals
Open
Heap & Priority Queue
Heap Sort
Open
Heap & Priority Queue
Hands-on: Heap Sort
Open
Heap & Priority Queue
Priority Queue in Java
Open
Graph
Introduction to Graphs
Open
Graph
Graph Representation
Open
Graph
Hands-on: Graph Representation
Open
Graph
Graph Traversal: BFS
Open
Graph
Graph Traversal: DFS
Open
Graph Algorithms
Rotten Oranges Problem
Open
Graph Algorithms
Dijkstra's Algorithm
Open
Graph Algorithms
Hands-on: Dijkstra's Algorithm
Open
Graph Algorithms
Bellman-Ford Algorithm
Open
Graph Algorithms
Topological Sorting
Open
Graph Algorithms
Hands-on: Topological Sort
Open
Graph Algorithms
Bipartite Graphs
Open
Trie
Trie Data Structure
Open
Trie
Case Study: Trie
Open