DSA in Python & C++

Description
Instructors
Prof. Ravindrababu Ravula is a dedicated Teacher with 15+ years of experience and a deep passion for computer science. Students call him RBR Sir and he did his Masters' degree in Computer Science from IISc Bangalore.

Jay Bansal (AIR 2) did his MTech from IIT Bombay (Specialising in deep networks and image processing). Working as an ML Engineer at Google, working on making cool products using state-of-the-art LLMs like Bard and Gemini.

Syllabus
1. Python Programming
Basics of Python programming
Data types, variables, and operators
Control flow
Functions
Modules
Object-Oriented Programming
Classes and objects
Inheritance and polymorphism
Encapsulation and abstraction
2. Data Structures
Stacks
Queues
Linked Lists
Doubly and Circular linked lists
Operations on linked lists
Binary trees
Binary search trees
Tree traversals
Hash Tables
Hash functions and collision resolution
Tries
3. Algorithms
Linear Search
Binary Search
Selection Sort
Bubble Sort
Insertion Sort
Divide and Conquer
Mergesort
Quicksort
Dynamic Programming
4. Graph Theory
Basics of Graph Theory
Graphs, vertices, and edges
Types of Graphs
Graph representations
Graph traversals
Depth First Search
Breadth-First Search
Shortest path algorithms
Dijkstra's algorithm
Bellman-Ford algorithm
5. DSA Problems
Note: Some problems will be solved in the classroom, while the remaining ones will be assigned as homework.
Arrays
- Two Sum
- Contains Duplicate
- Best Time to Buy and Sell Stock
- Merge Sorted Array
- Majority Element
- Remove Duplicates from a Sorted Array
- Max Consecutive Ones
- Check if an array is sorted and rotated
- Move Zeroes
- Single Number
- Pascal's Triangle
- Rotate Array
- Majority Element II
- Product of Array Except for Self
- Maximum Subarray/ Maximum Sum Subarray/ Kadanes Algorithm
- Maximum Product Subarray
- Container With Most Water
- Missing Number
- Longest Consecutive Sequence
- Set Matrix Zeroes
- Spiral Matrix
- Rotate Image
- Rearrange array elements by sign
- Next Permutation
- Sort Colors
- Subarray sum equals k
- Merge Intervals
- Find the Duplicate Number
- Repeat and Missing Number Array
- Count Inversions
- Search in a 2D Matrix
- Pow(x, n)
- Unique Paths
- 3Sum
- 4Sum
- Largest Subarray with Sum 0
- Subarray with given XOR
- Trapping Rain Water
Strings
- Valid Palindrome
- Valid Anagram
- Roman To Integer
- Longest Common Prefix
- Find the index of the first occurrence in a string
- Remove Outermost Parentheses
- Isomorphic Strings
- Largest Odd Number in String
- Rotate String
- Maximum Nesting Depth of the Parentheses
- Sum of beauty of all substrings
- Minimum add to make parentheses valid
- Group Anagrams
- Longest Palindromic Substring
- Palindromic Substrings
- Encode and Decode Strings
- Reverse words in a string
- Minimum Characters required to make a string palindromic
- String to Integer Atoi
- Count and Say
- Compare Version Numbers
- Sort Characters by Frequency
- Shortest Palindrome
- Longest Happy Prefix
Backtracking
- Permutations
- Rat in a Maze
- Combination Sum
- Combination Sum II
- Palindrome Partitioning
- Word Search
- N Queens
- Sudoku Solver
Bit Manipulation
- Number of 1 Bits/ Brian Kernighan's Algorithm/ Number of set Bits/ Hamming Weight/ Population Count
- Counting Bits
- Reverse Bits
- Power of Two
- Single Number
- Minimum Bit Flips to Convert Number
- Divide Two Integers
- Subsets
- Sum of Two Integers
- Count Primes
- Pow(x, n)
Heaps
- Kth Largest Element in a Stream
- Kth Largest Element in an array
- Top K Frequent Elements
- Task Scheduler
- Hand of Straights
- Design Twitter
- Maximum Sum Combinations
- Merge K-Sorted Lists
- Find Median from Data Stream
LinkedList
- Reverse a Linked List
- Detect Cycle in a Linked List
- Middle of the Linked List
- Merge Two Sorted Lists
- Intersection of two linked lists
- Palindrome Linked List
- Delete the middle node of a linked list
- Odd Even Linked List
- Delete Node in a Linked List
- Linked List Cycle II
- Add Two Numbers
- Remove Nth Node From End Of List
- Reorder List
- Flattening a Linked List
- Copy List with Random Pointer
- Sort List
- Rotate List
- Reverse Nodes in K Group
- Merge K-Sorted Lists
Stack
- Valid Parentheses
- Implement Stack using Queues
- Next Greater Element I
- Nearest Smaller Element
- The sum of Subarray Minimums
- Next Greater Element II
- Min Stack
- Online Stock Span
- Asteroid Collision
- The sum of subarray ranges
- Remove K Digits
- LRU Cache
- Largest Rectangle in Histogram
- Maximal Rectangle
- LFU Cache
Binary Search
- Binary Search
- Search Insert Position
- Kth Missing Positive Number
- Find the first and last position of an element in a sorted array
- Search in a rotated sorted array
- Search in a rotated sorted array II
- Find Minimum in Rotated Sorted Array
- Single Element in a Sorted Array
- Allocate Books
- Aggressive Cows
- Kth Element of Two-Sorted Array
- Longest Increasing Subsequence
- Median of Two Sorted Arrays
- Find Peak Element
- Koko Eating Bananas
- Minimum Number of days to make m bouquets
- Find the smallest divisor given a threshold
- Capacity to ship packages within D Days
- Find a peak element II
- Search in a 2D matrix
- Search in a 2D matrix II
- Split Array Largest Sum
Dynamic Programming
- Climbing Stairs (Count ways to reach the n-th stairs)
- Best Time to Buy and Sell Stock
- Best Time to Buy and Sell Stock II
- Unique Paths
- Unqiue Paths II
- Longest Increasing Subsequence
- 0/1 Knapsack
- Word Break Problem
- House Robber
- House Robber II
- Decode Ways
- Egg Dropping Puzzle
- Maximum Sum Increasing Subsequence
- Word Break
- Minimum Path Sum
- Coin Change
- Triangle
- Target Sum
- Minimum Failing Path Sum
- Partition Equal Subset Sum
- Edit Distance
- Delete Operation for Two Strings
- Largest divisible subset
- Number of longest increasing subsequence
- Count Square Submatrices with all ones
- Longest Common Subsequence
- Best time to buy and sell stock with cooldown
- Partition array for maximum sum
- Best time to buy and sell stock with transaction free
- Best time to buy and sell stock III
- Best time to buy and sell stocok IV
- Palindromic Partitioning
- Matrix Chain Multiplication
- Minimum Cost to Cut a Stick
- Paritition Array into two arrays to minimize sum difference
- Minimum Insertion Steps to make a string palindrome
- Shortest Common Supersequence
- Distinct Subsequence
- Wildcard Matching
- Burst Balloons
- Parsing a boolean expression
- Palindrome Partitioning II
- Maximal Rectangle
Greedy
- N Meetings in One Room
- Lemonade Change
- Assign Cookies
- JUMP Game
- Jump Game II
- Valid Parenthesis String
- Insert Interval
- Merge Intervals
- Non-overlapping intervals
- Meeting Rooms 1
- Meeting Rooms 2
- Minimum Platforms
- Job Sequencing Problem
- Candy
Sliding Window
- Valid Anagram
- Longest Repeating Character Replacement
- Longest substring without repeating characters
- Max Consecutive Ones III
- Binary Subarrays with Sum
- Count Number of Nice Subarrays
- Maximum Points you can obtain from cards
- Number of substrings containing all three characters
- Minimum Window Substring
- Sliding Window Maximum
- Subarrays with K different Integers
Trees
- Invert/Flip Binary Tree / Mirror Tree
- Inorder Traversal
- Preorder Traversal
- Postorder Traversal
- Count Complete Tree Nodes
- Subtree of Another Tree
- Same Tree
- Symmetric Tree
- Maximum Depth of Binary Tree
- Diameter of Binary Tree
- Balanced Binary Tree
- Search in a Binary Search Tree
- Insert into a Binary Search Tree
- Two Sum IV Input is a BST
- Floor From BST
- Ceil From BST
- Left View of Binary Tree
- Bottom View of Binary Tree
- Top View of a Binary Tree
- Right Side View
- Level Order Travesal
- Lowest Common Ancestor of a Binary Tree
- Binary Tree Zigzag Level Order Traversal
- Convert Sorted Array to Binary Search Tree
- Delete Node in a BST
- Maximum Width of Binary Tree
- Binary Tree Maximum Path Sum
- Construct Binary Tree from Preorder and Inorder Traversal
- Binary Tree Level Order Traversal
- Validate Binary Search Tree
- Flatten Binary Tree to Linked List
- Populating next right pointers in each node
- Kth Largest Element in a BST
- Kth Smallest Element in a BST
- All Nodes Distance K in Binary Tree
- Predecessor and Successor
- Lowest Common Ancestor of a Binary Search Tree
- Recover Binary Search Tree
- Vertical Order Traversal of a Binary Tree
- Serialize and Deserialize Binary Tree
Graph
- DFS of Graph
- BFS of Graph
- Flood Fill
- Clone Graph Link
- Course Schedule I
- Topological Sort
- Number of Provinces
- Pacific Atlantic Water Flow
- Rotting Oranges
- Number of Islands
- Is Graph Bipartite
- Implement Dijkstra Algorithm
- Graph Valid Tree
- Number of Provinces
- Minimum Spanning Tree
- Surrounded Regions
- Number of Enclaves
- Find Eventual Safe States
- 01 Matrix
- Shortest Path in BInary Matrix
- Path with Minimum Effort
- Cheapest Flights within K Stops
- Network Delay Time
- Number of Ways to Arrive at destination
- Number of Operations to make network connected
- Most stones removed with same row or columns
- Accounts Merge
- Alien Dictionary
- Word Ladder
- Word Ladder II
- Making a large island
- Swim in rising water
Trie
- Implement Trie (Prefix Tree)
- Implement Trie II
- Power Set
- Count Distinct Substrings
- Maximum Xor of Two Numbers in an Array
- Complete String
- Maximum Xor with an element from an array
HashMap + Doubly LinkedList
Note: No Refund
Loading...