There are no items in your cart
Add More
Add More
| Item Details | Price | ||
|---|---|---|---|
Master DSA in Python. Build problem-solving skills that scale from interviews to real-world systems.
Instructor: CampusX
Language: Hinglish
Validity Period: 1095 days
Data Structures & Algorithms in Python – Foundations is a structured, beginner-friendly yet interview-oriented course designed to help you build strong problem-solving skills from the ground up. The course focuses on understanding core data structures and algorithms, implementing them cleanly in Python, and applying proven problem-solving patterns used in technical interviews and competitive programming.
You will progress from Python and complexity analysis to arrays, strings, linked lists, stacks, queues, searching, sorting, recursion, hashing, and advanced topics like trees and graphs. Every concept is taught with clear intuition, optimized Python implementations, and carefully selected problems to strengthen logical thinking. By the end of the course, you will be able to break down complex problems, choose the right approach, and write efficient, interview-ready solutions—while also building a solid foundation for advanced computer science, machine learning, and system design.
Course Duration: 57+ hrs
Course Outline: https://docs.google.com/document/d/1xXmtsHkHXMFEojH-loTgMgUBN289Dq5ad5_qPy74yns/edit?usp=sharing
| Before Starting | |||
| Readme | |||
| Course Outline | Preview | ||
| Course Introduction 5:00 | Preview | ||
| Complete Notes (702 pages) | |||
| Github Repo & Notes | |||
| Introduction to DSA & Python | |||
| 1 - Introduction to DSA 1:00 | |||
| 1.1 - Importance of DSA 10:00 | |||
| 1.2 - Time & Space Complexity 27:00 | |||
| 1.2.1 - Practice Time & Space Complexity 24:00 | |||
| 1.3 - Python Refresher 2:00 | |||
| 1.3.1 - Built-in Data Types & Data Structures 21:00 | |||
| 1.3.2 - Control Structures 12:00 | |||
| 1.3.3. - Loops 13:00 | |||
| 1.3.4 - Functions 23:00 | |||
| 1.3.5 - Built-in Functions 18:00 | |||
| 1.3.6 - List Comprehensions 12:00 | |||
| 1.3.7 - Classes 21:00 | |||
| 1.3.8 - Reading Inputs 19:00 | |||
| Arrays & List | |||
| 2 - Arrays & Lists 1:00 | |||
| 2.1 - Arrrays 14:00 | |||
| 2.1.1 - Array Operations 25:00 | |||
| 2.2 - Lists 4:00 | |||
| 2.2.1 - 1D List Operations 25:00 | |||
| 2.2.2 - 2D List Operations 17:00 | |||
| 2.3 - Arrays vs Lists 15:00 | |||
| 2.4 - Complexity Analysis 15:00 | |||
| 2.5.1 - Find the Largest Number in a List 6:00 | |||
| 2.5.2 - Count Occurrences of an Element 4:00 | |||
| 2.5.3 - Remove Duplicates from a List 5:00 | |||
| 2.5.4 - Reverse a List 12:00 | |||
| 2.6 - DS Context 3:00 | |||
| Strings | |||
| 3 - Strings 1:00 | |||
| 3.1 - Introduction to Strings 10:00 | |||
| 3.2 - Properties of Strings 15:00 | |||
| 3.3 - Usecases of Strings 3:00 | |||
| 3.4 - Common String Functions 24:00 | |||
| 3.5 - String Manipulation 27:00 | |||
| 3.6 - String Comparison 12:00 | |||
| 3.7.1 - Count Vowels and Consonents 5:00 | |||
| 3.7.2 - Frequency of Characters 8:00 | |||
| 3.7.3 - Palindrome 3:00 | |||
| 3.7.4 - Anagrams 23:00 | |||
| 3.8 - DS Context 2:00 | |||
| Linked List | |||
| 4 - Linked Lists 2:00 | |||
| 4.1 - Introduction 20:00 | |||
| 4.2 - Linked Lists in Memory 10:00 | |||
| 4.3 - Linked Lists vs Arrays 8:00 | |||
| 4.4 - Types of Linked Lists 9:00 | |||
| 4.5 - Singly Linked List 4:00 | |||
| 4.5.1 - SLL Initial Setup 21:00 | |||
| 4.5.2 - SLL Insertion At Beginning 18:00 | |||
| 4.5.3 - SLL Insertion At End 13:00 | |||
| 4.5.4 - SLL Insertion In Middle 29:00 | |||
| 4.5.5 - SLL Searching 7:00 | |||
| 4.5.6 - SLL Deletion At Beginning 12:00 | |||
| 4.5.7 - SLL Deletion At End 17:00 | |||
| 4.5.8 - SLL Deletion In Middle 19:00 | |||
| 4.5.9 - SLL Complexity Analysis 8:00 | |||
| 4.6 - Circular Singly Linked List 7:00 | |||
| 4.6.1 - CSLL Initial Setup 10:00 | |||
| 4.6.2 - CSLL Insertion At Beginning 13:00 | |||
| 4.6.3 - CSLL Insertion At End 10:00 | |||
| 4.6.4 - CSLL Insertion In Middle 16:00 | |||
| 4.6.5 - CSLL Searching 14:00 | |||
| 4.6.6 - CSLL Deletion At Beginning 15:00 | |||
| 4.6.7 - CSLL Deletion At End 11:00 | |||
| 4.6.8 - CSLL Deletion In Middle 13:00 | |||
| 4.6.9 - CSLL Complexity Analysis 9:00 | |||
| 4.7 - Doubly Linked List 9:00 | |||
| 4.7.1 - DLL Initial Setup 12:00 | |||
| 4.7.2 - DLL Insertion At Beginning 11:00 | |||
| 4.7.3 - DLL Insertion At End 9:00 | |||
| 4.7.4 - DLL Insertion In Middle 16:00 | |||
| 4.7.5 - DLL Searching 8:00 | |||
| 4.7.6 - DLL Deletion At Beginning 10:00 | |||
| 4.7.7 - DLL Deletion At End 10:00 | |||
| 4.7.8 - DLL Deletion In Middle 12:00 | |||
| 4.7.9 - DLL Complexity Analysis 12:00 | |||
| 4.8 - Circular Doubly Linked List 4:00 | |||
| 4.8.1 - CDLL Initial Setup 15:00 | |||
| 4.8.2 - CDLL Insertion At Beginning 16:00 | |||
| 4.8.3 - CDLL Insertion At End 11:00 | |||
| 4.8.4 - CDLL Insertion In Middle 15:00 | |||
| 4.8.5 - CDLL Searching 10:00 | |||
| 4.8.6 - CDLL Deletion At Beginning 9:00 | |||
| 4.8.7 - CDLL Deletion At End 8:00 | |||
| 4.8.8 - CDLL Deletion In Middle 14:00 | |||
| 4.8.9 - CDLL Complexity Analysis 10:00 | |||
| 4.9.1 - Find the Middle Element of a Linked List 9:00 | |||
| 4.9.2 - Count Nodes in a Circular List 9:00 | |||
| 4.9.3 - Sum of Nodes in a Linked List 7:00 | |||
| 4.9.4 - Maximum and Minimum Element in a Linked List 15:00 | |||
| Stacks | |||
| 5 - Stacks 1:00 | |||
| 5.1 - Introduction to Stacks 11:00 | |||
| 5.2 - Common Operations in Stacks 11:00 | |||
| 5.3 - Implementation of Stacks in Python 3:00 | |||
| 5.3.1 - Stack using Lists 17:00 | |||
| 5.3.2 - Stack using Collections module 5:00 | |||
| 5.3.3 - Stack using Linked Lists 22:00 | |||
| 5.4 - Complexity Analysis of Stack 5:00 | |||
| 5.5 - Applications of Stack 12:00 | |||
| 5.6 - Pros & Cons with Stack 5:00 | |||
| 5.7.1 - Reverse a String using Stack 6:00 | |||
| 5.7.2 - Check Balanced Parentheses 21:00 | |||
| 5.7.3 - Undo Operation Simulation 11:00 | |||
| 5.8 - DS context 1:00 | |||
| Queues | |||
| 6 - Queues 1:00 | |||
| 6.1 - Introduction to Queues 17:00 | |||
| 6.2 - Common Operations in Queues 8:00 | |||
| 6.3 - Implementation of Queues 3:00 | |||
| 6.3.1 - Implementing Queue using List 15:00 | |||
| 6.3.2 - Implementing Queue using Linked List 21:00 | |||
| 6.3.3 - Implementing Queue using Collections module 8:00 | |||
| 6.4 - Queue Complexity Analysis 6:00 | |||
| 6.5.1 - Queue using Stack 21:00 | |||
| 6.5.2 - Reverse first K in a Queue 15:00 | |||
| 6.5.3 - Ticket Counter 13:00 | |||
| 6.6 - DS Context 3:00 | |||
| Searching | |||
| 7 - Searching 1:00 | |||
| 7.1 - Linear Search 8:00 | |||
| 7.2 - Binary Search 27:00 | |||
| 7.3.1 - Exponential Search (Theory) 28:00 | |||
| 7.3.2 - Exponential Search (Code) 8:00 | |||
| 7.4 - DS Context 2:00 | |||
| Sorting | |||
| 8 - Sorting 2:00 | |||
| 8.1 - Introduction 7:00 | |||
| 8.2.1 - Bubble Sort (theory) 12:00 | |||
| 8.2.2 - Bubble Sort (code) 10:00 | |||
| 8.3.1 - Selection Sort (theory) 21:00 | |||
| 8.3.2 - Selection Sort (code) 5:00 | |||
| 8.4.1 - Insertion Sort (theory) 18:00 | |||
| 8.4.2 - Insertion Sort (code) 9:00 | |||
| 8.5.1 - Merge Sort (theory) 42:00 | |||
| 8.5.2 - Merge Sort (code) 7:00 | |||
| 8.6.1 - Quick Sort (theory) 18:00 | |||
| 8.6.2 - Quick Sort (code) 5:00 | |||
| 8.7.1 - Counting Sort (theory) 8:00 | |||
| 8.7.2 - Counting Sort (code) 8:00 | |||
| 8.8 - Complexity Analysis 9:00 | |||
| 8.9 - DS Context 2:00 | |||
| Recursion | |||
| 9 - Recursion 1:00 | |||
| 9.1 - Introduction 14:00 | |||
| 9.2 - Internal Working 9:00 | |||
| 9.2.1 - Understanding Recursion using Factorial Number 18:00 | |||
| 9.2.2 - Understanding Recursion using Fibonacci 15:00 | |||
| 9.3 - Common Mistakes 4:00 | |||
| 9.4 - Recursion vs Iteration 4:00 | |||
| 9.5.1 - Print N to 1 8:00 | |||
| 9.5.2 - Sum First N Natural numbers 9:00 | |||
| 9.5.3 - Count Digits 9:00 | |||
| 9.5.4 - Power Function 9:00 | |||
| 9.6 - DS Context 2:00 | |||
| Hashing | |||
| 10 - Hashing 1:00 | |||
| 10.1 - Introduction 9:00 | |||
| 10.2 - Hashing Function 9:00 | |||
| 10.2.1 - Implementing Common Hashing Functions 6:00 | |||
| 10.3 - Hashing Table 3:00 | |||
| 10.4 - Hash Collisions 21:00 | |||
| 10.4.1 - Chained Hashing 19:00 | |||
| 10.4.2 - Linear Probing 22:00 | |||
| 10.4.3 - Quadratic Probing 9:00 | |||
| 10.5 - Load Factor 9:00 | |||
| 10.6 - Common Operations 1:00 | |||
| 10.6.1 - Hashing Operations using Dictionaries 17:00 | |||
| 10.6.2 - Hashing Operations using Sets 5:00 | |||
| 10.7 - Complexity Analysis 5:00 | |||
| 10.8.1 - Chaarcter Count 4:00 | |||
| 10.8.2 - First Non-Repeating Character 5:00 | |||
| 10.8.3 - Two-Sum Problem 12:00 | |||
| 10.9 - DS Context 2:00 | |||
| Problem Solving | |||
| 11 - Problem Solving 4:00 | |||
| 11.1 - Sliding Window 7:00 | |||
| 11.1.1 - Maximum Sum Subarray 25:00 | |||
| 11.1.2 - Longest Substring Without Repeating Characters 14:00 | |||
| 11.1.3 - Find All Anagrams 20:00 | |||
| 11.2 - Two Pointers 4:00 | |||
| 11.2.1 - Remove Duplicates from Sorted Array 16:00 | |||
| 11.2.2 - Unique Triplets 21:00 | |||
| 11.2.3 - Two Sum Target 5:00 | |||
| 11.3 - Fast & Slow Pointers 8:00 | |||
| 11.3.1 - Detect Cycle in Linked List 15:00 | |||
| 11.3.2 - Find the Start of the Cycle in Linked List 17:00 | |||
| 11.3.3 - Find Duplicate Number 12:00 | |||
| 11.4 - Prefix Sum 3:00 | |||
| 11.4.1 - Subarray Sum Equals `K` 22:00 | |||
| 11.4.2 - Longest Subarray with Equal 0s and 1s 18:00 | |||
| 11.4.3 - Count Subarrays Divisible by K 13:00 | |||
| 11.5 - Hashing 2:00 | |||
| 11.5.1 - Top K Frequent Elements 6:00 | |||
| 11.5.2 - Valid Anagram 5:00 | |||
| 11.5.3 - Isomorphic Strings 13:00 | |||
| 11.6 - Binary Search Pattern 2:00 | |||
| 11.6.1 - First and Last Occurrence in Sorted Array 9:00 | |||
| 11.6.2 - Minimum Days to Make Bouquets 23:00 | |||
| 11.6.3 - Aggressive Cows 17:00 | |||
| 11.7 - Greedy Approach 6:00 | |||
| 11.7.1 - Activity Selection 13:00 | |||
| 11.7.2 - Minimum Railway Platforms 13:00 | |||
| 11.7.3 - Jump Game 18:00 | |||
| Trees | |||
| 12 - Trees 2:00 | |||
| 12.1 - Introduction 7:00 | |||
| 12.2 - Trees Terminology 19:00 | |||
| 12.3 - Properties of a Tree 5:00 | |||
| 12.4 - Tree Traversals 5:00 | |||
| 12.4.0 - Creating a Tree 6:00 | |||
| 12.4.1 - Preorder Traversal (theory) 11:00 | |||
| 12.4.2 - Preorder Traversal (code) 4:00 | |||
| 12.4.3 - Inorder Traversal 6:00 | |||
| 12.4.4 - Postorder Traversal 6:00 | |||
| 12.4.5 - Level Order Traversal 19:00 | |||
| 12.4.6 - Choice of Traversal 3:00 | |||
| 12.5 - BST 8:00 | |||
| 12.5.1 - BST Initial Setup 19:00 | |||
| 12.5.2 - Insertion in BST 14:00 | |||
| 12.5.3 - Searching in BST 5:00 | |||
| 12.5.4 - Deletion in BST 30:00 | |||
| 12.6 - N-ary Tree 6:00 | |||
| 12.6.1 - Initial Setup for N-ary Tree 5:00 | |||
| 12.6.2 - Preorder Traversal on N-ary Tree 7:00 | |||
| 12.6.3 - Postorder Traversal on N-ary Tree 10:00 | |||
| 12.6.4 - Level Order Traversal on N-ary Tree 19:00 | |||
| 12.7 - DP on Trees 13:00 | |||
| 12.8.1 - Calculate Depth of a Tree 12:00 | |||
| 12.8.2 - Count Nodes in a Tree 15:00 | |||
| 12.8.3 - Sum of Nodes in Tree 14:00 | |||
| 12.8.4 - Validate BST 22:00 | |||
| 12.8.5 - Lowest Common Ancestor 16:00 | |||
| 12.8.6 - Kth Smallest Element in BST 25:00 | |||
| 12.8.7 - Maximum Value in N-ary Tree 18:00 | |||
| 12.8.8 - Height of N-ary Tree 11:00 | |||
| 12.8.9 - Maximum Path Sum of Binary Tree 23:00 | |||
| 12.8.10 - Sum of Left Leaf Nodes 19:00 | |||
| 12.9 - DS Context 8:00 | |||
| Graphs | |||
| 13 - Graphs 3:00 | |||
| 13.1 - Introduction 8:00 | |||
| 13.2 - Types of Graphs 10:00 | |||
| 13.3 - Degree of a Graph 4:00 | |||
| 13.4 - Connectivity 2:00 | |||
| 13.5 - Graph Memory Representation 2:00 | |||
| 13.5.1 - Adjacency Matrix 10:00 | |||
| 13.5.2 - Adjacency List 8:00 | |||
| 13.6 - Graph Traversal 3:00 | |||
| 13.6.1 - DFS (theory) 17:00 | |||
| 13.6.2 - DFS (code) 9:00 | |||
| 13.6.3 - BFS (theory) 18:00 | |||
| 13.6.4 - BFS (code) 6:00 | |||
| 13.6.5 - Multi-Source BFS 20:00 | |||
| 13.6.6 - 0-1 BFS 32:00 | |||
| 13.6.7 - Choice of Traversal 1:00 | |||
| 13.7 - Shortest Path Algorithms 1:00 | |||
| 13.7.1 - Dijkstra’s Algorithm (theory) 11:00 | |||
| 13.7.2 - Dijkstra’s Algorithm (code) 10:00 | |||
| 13.7.3 - Bellman-Ford Algorithm (theory) 16:00 | |||
| 13.7.4 - Bellman-Ford Algorithm (code) 12:00 | |||
| 13.7.5 - Floyd-Warshall Algorithm (theory) 37:00 | |||
| 13.7.6 - Floyd-Warshall Algorithm (code) 9:00 | |||
| 13.8 - Advanced Algorithms | |||
| 13.8.1 - DSU (theory) 9:00 | |||
| 13.8.2 - DSU (code) 11:00 | |||
| 13.8.3 - Prim's MST (theory) 17:00 | |||
| 13.8.4 - Prim's MST (code) 10:00 | |||
| 13.8.5 - Kruskal’s MST (theory) 10:00 | |||
| 13.8.6 - Kruskal’s MST (code) 8:00 | |||
| 13.8.7 - Prim's vs Kruskal's 3:00 | |||
| 13.9 - State Space Graphs 11:00 | |||
| 13.9.1 - Rat in a Maze (theory) 19:00 | |||
| 13.9.2 - Rat in a Maze (code) 16:00 | |||
| 13.9.3 - 8-Puzzle (theory) 15:00 | |||
| 13.9.4 - 8-Puzzle (code) 14:00 | |||
| 13.10 - DAG 8:00 | |||
| 13.10.1 - Kahn’s Algorithm (theory) 20:00 | |||
| 13.10.2 - Kahn’s Algorithm (code) 7:00 | |||
| 13.10.3 - DAG Shortest Path (theory) 6:00 | |||
| 13.10.4 - DAG Shortest Path (code) 10:00 | |||
| 13.10.5 - DAG Longest Path 3:00 | |||
| 13.10.6 - DAG Counting Paths 8:00 | |||
| 13.10.7 - DAG Summary 3:00 | |||
| 13.11.1 - Deetct Cycle in Undirected Graph 12:00 | |||
| 13.11.2 - Number of Islands 18:00 | |||
| 13.11.3 - Clone Graph 25:00 | |||
| 13.11.4 - Check Bipartite Graph 14:00 | |||
| 13.11.5 - Course Scheduling 15:00 | |||
| 13.11.6 - Flood Fill 20:00 | |||
| 13.11.7 - Keys and Rooms 14:00 | |||
| 13.11.8 - Network Delay Time 22:00 | |||
| 13.11.9 - Evaluate Division 15:00 | |||
| 13.11.10 - Safe States 17:00 | |||
| 13.11.11 - Cheapest Flights in K Stops 12:00 | |||
| 13.11.12 - Number of Provinces 9:00 | |||
| 13.11.13 - If Path Exists 11:00 | |||
| 13.11.14 - Rotten Oranges 21:00 | |||
| 13.11.15 - Rerouting Paths 14:00 | |||
| 13.12 - DS Context 8:00 | |||
| Feedback Form & Certificate | |||
| Feedback Form | |||
After successful purchase, this item would be added to your courses.
You can access your courses in the following ways :