arrow_back
Before Starting
Readme
Course Outline
Course Introduction
Complete Notes
Github Repo & Notes
Introduction to DSA & Python
1 - Introduction to DSA
1.1 - Importance of DSA
1.2 - Time & Space Complexity
1.2.1 - Practice Time & Space Complexity
1.3 - Python Refresher
1.3.1 - Built-in Data Types & Data Structures
1.3.2 - Control Structures
1.3.3. - Loops
1.3.4 - Functions
1.3.5 - Built-in Functions
1.3.6 - List Comprehensions
1.3.7 - Classes
1.3.8 - Reading Inputs
Arrays & List
2 - Arrays & Lists
2.1 - Arrrays
2.1.1 - Array Operations
2.2 - Lists
2.2.1 - 1D List Operations
2.2.2 - 2D List Operations
2.3 - Arrays vs Lists
2.4 - Complexity Analysis
2.5.1 - Find the Largest Number in a List
2.5.2 - Count Occurrences of an Element
2.5.3 - Remove Duplicates from a List
2.5.4 - Reverse a List
2.6 - DS Context
Strings
3 - Strings
3.1 - Introduction to Strings
3.2 - Properties of Strings
3.3 - Usecases of Strings
3.4 - Common String Functions
3.5 - String Manipulation
3.6 - String Comparison
3.7.1 - Count Vowels and Consonents
3.7.2 - Frequency of Characters
3.7.3 - Palindrome
3.7.4 - Anagrams
3.8 - DS Context
Linked List
4 - Linked Lists
4.1 - Introduction
4.2 - Linked Lists in Memory
4.3 - Linked Lists vs Arrays
4.4 - Types of Linked Lists
4.5 - Singly Linked List
4.5.1 - SLL Initial Setup
4.5.2 - SLL Insertion At Beginning
4.5.3 - SLL Insertion At End
4.5.4 - SLL Insertion In Middle
4.5.5 - SLL Searching
4.5.6 - SLL Deletion At Beginning
4.5.7 - SLL Deletion At End
4.5.8 - SLL Deletion In Middle
4.5.9 - SLL Complexity Analysis
4.6 - Circular Singly Linked List
4.6.1 - CSLL Initial Setup
4.6.2 - CSLL Insertion At Beginning
4.6.3 - CSLL Insertion At End
4.6.4 - CSLL Insertion In Middle
4.6.5 - CSLL Searching
4.6.6 - CSLL Deletion At Beginning
4.6.7 - CSLL Deletion At End
4.6.8 - CSLL Deletion In Middle
4.6.9 - CSLL Complexity Analysis
4.7 - Doubly Linked List
4.7.1 - DLL Initial Setup
4.7.2 - DLL Insertion At Beginning
4.7.3 - DLL Insertion At End
4.7.4 - DLL Insertion In Middle
4.7.5 - DLL Searching
4.7.6 - DLL Deletion At Beginning
4.7.7 - DLL Deletion At End
4.7.8 - DLL Deletion In Middle
4.7.9 - DLL Complexity Analysis
4.8 - Circular Doubly Linked List
4.8.1 - CDLL Initial Setup
4.8.2 - CDLL Insertion At Beginning
4.8.3 - CDLL Insertion At End
4.8.4 - CDLL Insertion In Middle
4.8.5 - CDLL Searching
4.8.6 - CDLL Deletion At Beginning
4.8.7 - CDLL Deletion At End
4.8.8 - CDLL Deletion In Middle
4.8.9 - CDLL Complexity Analysis
4.9.1 - Find the Middle Element of a Linked List
4.9.2 - Count Nodes in a Circular List
4.9.3 - Sum of Nodes in a Linked List
4.9.4 - Maximum and Minimum Element in a Linked List
Stacks
5 - Stacks
5.1 - Introduction to Stacks
5.2 - Common Operations in Stacks
5.3 - Implementation of Stacks in Python
5.3.1 - Stack using Lists
5.3.2 - Stack using Collections module
5.3.3 - Stack using Linked Lists
5.4 - Complexity Analysis of Stack
5.5 - Applications of Stack
5.6 - Pros & Cons with Stack
5.7.1 - Reverse a String using Stack
5.7.2 - Check Balanced Parentheses
5.7.3 - Undo Operation Simulation
5.8 - DS context
Queues
6 - Queues
6.1 - Introduction to Queues
6.2 - Common Operations in Queues
6.3 - Implementation of Queues
6.3.1 - Implementing Queue using List
6.3.2 - Implementing Queue using Linked List
6.3.3 - Implementing Queue using Collections module
6.4 - Queue Complexity Analysis
6.5.1 - Queue using Stack
6.5.2 - Reverse first K in a Queue
6.5.3 - Ticket Counter
6.6 - DS Context
Searching
7 - Searching
7.1 - Linear Search
7.2 - Binary Search
7.3.1 - Exponential Search (Theory)
7.3.2 - Exponential Search (Code)
7.4 - DS Context
Sorting
8 - Sorting
8.1 - Introduction
8.2.1 - Bubble Sort (theory)
8.2.2 - Bubble Sort (code)
8.3.1 - Selection Sort (theory)
8.3.2 - Selection Sort (code)
8.4.1 - Insertion Sort (theory)
8.4.2 - Insertion Sort (code)
8.5.1 - Merge Sort (theory)
8.5.2 - Merge Sort (code)
8.6.1 - Quick Sort (theory)
8.6.2 - Quick Sort (code)
8.7.1 - Counting Sort (theory)
8.7.2 - Counting Sort (code)
8.8 - Complexity Analysis
8.9 - DS Context
Recursion
9 - Recursion
9.1 - Introduction
9.2 - Internal Working
9.2.1 - Understanding Recursion using Factorial Number
9.2.2 - Understanding Recursion using Fibonacci
9.3 - Common Mistakes
9.4 - Recursion vs Iteration
9.5.1 - Print N to 1
9.5.2 - Sum First N Natural numbers
9.5.3 - Count Digits
9.5.4 - Power Function
9.6 - DS Context
Hashing
10 - Hashing
10.1 - Introduction
10.2 - Hashing Function
10.2.1 - Implementing Common Hashing Functions
10.3 - Hashing Table
10.4 - Hash Collisions
10.4.1 - Chained Hashing
10.4.2 - Linear Probing
10.4.3 - Quadratic Probing
10.5 - Load Factor
10.6 - Common Operations
10.6.1 - Hashing Operations using Dictionaries
10.6.2 - Hashing Operations using Sets
10.7 - Complexity Analysis
10.8.1 - Chaarcter Count
10.8.2 - First Non-Repeating Character
10.8.3 - Two-Sum Problem
10.9 - DS Context
Problem Solving
11 - Problem Solving
11.1 - Sliding Window
11.1.1 - Maximum Sum Subarray
11.1.2 - Longest Substring Without Repeating Characters
11.1.3 - Find All Anagrams
11.2 - Two Pointers
11.2.1 - Remove Duplicates from Sorted Array
11.2.2 - Unique Triplets
11.2.3 - Two Sum Target
11.3 - Fast & Slow Pointers
11.3.1 - Detect Cycle in Linked List
11.3.2 - Find the Start of the Cycle in Linked List
11.3.3 - Find Duplicate Number
11.4 - Prefix Sum
11.4.1 - Subarray Sum Equals `K`
11.4.2 - Longest Subarray with Equal 0s and 1s
11.4.3 - Count Subarrays Divisible by K
11.5 - Hashing
11.5.1 - Top K Frequent Elements
11.5.2 - Valid Anagram
11.5.3 - Isomorphic Strings
11.6 - Binary Search Pattern
11.6.1 - First and Last Occurrence in Sorted Array
11.6.2 - Minimum Days to Make Bouquets
11.6.3 - Aggressive Cows
11.7 - Greedy Approach
11.7.1 - Activity Selection
11.7.2 - Minimum Railway Platforms
11.7.3 - Jump Game
Trees
12 - Trees
12.1 - Introduction
12.2 - Trees Terminology
12.3 - Properties of a Tree
12.4 - Tree Traversals
12.4.0 - Creating a Tree
12.4.1 - Preorder Traversal (theory)
12.4.2 - Preorder Traversal (code)
12.4.3 - Inorder Traversal
12.4.4 - Postorder Traversal
12.4.5 - Level Order Traversal
12.4.6 - Choice of Traversal
12.5 - BST
12.5.1 - BST Initial Setup
12.5.2 - Insertion in BST
12.5.3 - Searching in BST
12.5.4 - Deletion in BST
12.6 - N-ary Tree
12.6.1 - Initial Setup for N-ary Tree
12.6.2 - Preorder Traversal on N-ary Tree
12.6.3 - Postorder Traversal on N-ary Tree
12.6.4 - Level Order Traversal on N-ary Tree
12.7 - DP on Trees
12.8.1 - Calculate Depth of a Tree
12.8.2 - Count Nodes in a Tree
12.8.3 - Sum of Nodes in Tree
12.8.4 - Validate BST
12.8.5 - Lowest Common Ancestor
12.8.6 - Kth Smallest Element in BST
12.8.7 - Maximum Value in N-ary Tree
12.8.8 - Height of N-ary Tree
12.8.9 - Maximum Path Sum of Binary Tree
12.8.10 - Sum of Left Leaf Nodes
12.9 - DS Context
Graphs
13 - Graphs
13.1 - Introduction
13.2 - Types of Graphs
13.3 - Degree of a Graph
13.4 - Connectivity
13.5 - Graph Memory Representation
13.5.1 - Adjacency Matrix
13.5.2 - Adjacency List
13.6 - Graph Traversal
13.6.1 - DFS (theory)
13.6.2 - DFS (code)
13.6.3 - BFS (theory)
13.6.4 - BFS (code)
13.6.5 - Multi-Source BFS
13.6.6 - 0-1 BFS
13.6.7 - Choice of Traversal
13.7 - Shortest Path Algorithms
13.7.1 - Dijkstra’s Algorithm (theory)
13.7.2 - Dijkstra’s Algorithm (code)
13.7.3 - Bellman-Ford Algorithm (theory)
13.7.4 - Bellman-Ford Algorithm (code)
13.7.5 - Floyd-Warshall Algorithm (theory)
13.7.6 - Floyd-Warshall Algorithm (code)
13.8 - Advanced Algorithms
13.8.1 - DSU (theory)
13.8.2 - DSU (code)
13.8.3 - Prim's MST (theory)
13.8.4 - Prim's MST (code)
13.8.5 - Kruskal’s MST (theory)
13.8.6 - Kruskal’s MST (code)
13.8.7 - Prim's vs Kruskal's
13.9 - State Space Graphs
13.9.1 - Rat in a Maze (theory)
13.9.2 - Rat in a Maze (code)
13.9.3 - 8-Puzzle (theory)
13.9.4 - 8-Puzzle (code)
13.10 - DAG
13.10.1 - Kahn’s Algorithm (theory)
13.10.2 - Kahn’s Algorithm (code)
13.10.3 - DAG Shortest Path (theory)
13.10.4 - DAG Shortest Path (code)
13.10.5 - DAG Longest Path
13.10.6 - DAG Counting Paths
13.10.7 - DAG Summary
13.11.1 - Deetct Cycle in Undirected Graph
13.11.2 - Number of Islands
13.11.3 - Clone Graph
13.11.4 - Check Bipartite Graph
13.11.5 - Course Scheduling
13.11.6 - Flood Fill
13.11.7 - Keys and Rooms
13.11.8 - Network Delay Time
13.11.9 - Evaluate Division
13.11.10 - Safe States
13.11.11 - Cheapest Flights in K Stops
13.11.12 - Number of Provinces
13.11.13 - If Path Exists
13.11.14 - Rotten Oranges
13.11.15 - Rerouting Paths
13.12 - DS Context
Feedback Form & Certificate
Feedback Form
Preview - DSA for AI
Discuss (
0
)
navigate_before
Previous
Next
navigate_next