Data Structures and Algorithms (DSA) in Python - Self Paced
Data Structures and Algorithms (DSA) in Python - Self Paced
Data Structures and Algorithms (DSA) in Python - Self Paced
List (Dynamic Sized Array) Introduction Array insert at end Left Rotate by d Places Smallest Positive Missing Number
Working of List in Python Array insert at index Maximum difference Rearrange array alternately
Average or Mean of a List Get Element At Index Stock Buy &Sell Part 2 Rearrange an array with O(1) extra space
Separate Even and Odd Array Update At Index Trapping Rainwater Maximum index
Get Smaller Elements Array Delete And Shift Maximum Consecutive 1s Trapping Rainwater
Slicing (List,Tuple And String) Count Smaller Than X Longest even odd subarray Stock buy and sell
Comprehensions in Python Count Elements Greater Than X Majority element Check is array is rotated and sorted
Largest Element in a List Find Immediate Smaller Than X Minimum Consecutive flips Kadane's Algorithm
List Second Largest Element in a list Find Immediate Greater Than X Sliding Window Technique Longest Subarray of even and odd
Check if a list is Sorted Who has the majority? Maximum subarray sum Game of chocolates
Find the only Odd Maximum and Minimum In Array Maximum circular sum subarray Divide and Subtract Game
Reverse a List in Python Reverse The Array Prefix Sum Technique Max Circular subarray Sum
Remove duplicates from sorted array Rotate Array
Move Zeros to End Sum of Array Elements
Leaders in an Array problem Mean And Median of Array
Frequencies in a sorted array Is Array Sorted
Left Rotate a List by one
Applications of Recursion Print 1 To N Without Loop Subset of a given string Tower Of Hanoi
Writing Base Cases in Recursion Factorial Using Recursion Printing all Permutations Power Using Recursion
Tail Recursion Count Total Digits in a Number Tower of Hanoi in Python Power Of Numbers
Practice For Recursion (Part 1) Sum of Digits of a Number Josephus Problem in Python Power Set Using Recursion
Practice For Recursion (Part 2) Recursively Sum N Numbers Subset sum problem Possible Words From Phone Digits
Recursion Print N to 1 using Recursion in Python Fibonacci Using Recursion Rope Cutting Problem
Print 1 to N using Recursion in Python The Sequence
Sum of Natural Numbers Using Recursion Find nCr
Sum Of Digits Using Recursion Check Palindrome
Palindrome Check using Recursion GCD Euclid
Print Array Elements Using Recursion
Binary Search in Python Search an Element in an array Search in Sorted Rotated Array Square root of a number
Recursive Binary Search in Python Searching an element in a sorted array Median of two sorted arrays Majority Element
Analysis of Binary Search Count 1's in binary array Repeating Elements Part (1) Minimum Number in a sorted rotated array
Searching Index of first occurrence in a sorted array Left Index Repeating Elements Part (2) Two Repeated Elements
Index of Last Occurrence Peak element Allocate Minimum Pages (Naive Method) Roof Top
Count Occurrences in a Sorted Array Floor in a Sorted Array Allocate Minimum Pages (Binary Search) Maximum Water Between Two Buildings
Count 1s in a Sorted Binary Array Smallest Positive missing number
Count only Repeated
Count More than n/k Occurences
Allocate minimum number of pages
Subarray with given sum
Median of Two sorted arrays
Sorting in Python Bubble Sort Tail Call Elimination in Quick Sort Union of Two Sorted Arrays
List Sort in Python Insertion Sort Kth Smallest Intersection of two sorted arrays
Sorted in Python Quick Sort Minimum Difference in an Array Count the number of possible triangles
Stability in Sorting Algorithm Binary Array Sorting Chocolate Distribution Problem Find triplets with zero sum
Bubble Sort Count Inversions Sort an array with two types of element Three way partitioning
Selection Sort Sort an array with three types of elements Counting Sort
Insertion Sort in Python Merge overlapping intervals Closet 0s 1s and 2s
Merge Sort Algorithm Meeting the maximum guests Sort by Absolute Difference
Merge Two Sorted Arrays Counting Sort Triplet Sum in Array
Merge Subarrays Cycle Sort Kth smallest element
Sorting Count inversions in Array Bucket Sort Number of pairs
Merge Sort Analysis Radix Sort Merge Without Extra Space
Quick Sort Introduction Overview of sorting algorithm Merge three sorted arrays
Partition a Given Array Closer to sort
Lomuto Partition Minimum Platforms
Hoare's Partition
Quick Sort using Lomuto Partition
Quick Sort using Hoare's Partition
Analysis of Quick Sort
Space Analysis of Quick Sort
Heap Sort
Introduction to Hashing Count Non-Repeated Elements Intersection of two arrays Intersection of two arrays
Hashing Application Print Non-Repeated Elements Union of two unsorted arrays Union of two arrays
Direct Address Table Non Repeating Character Pair with given sum in unsorted array Check if two arrays are equal or not
Hashing Functions Hashing for pair - 1 Subarray with 0 sum in Python Numbers containing 1, 2 and 3
Collision Handling Hashing for pair - 2 Check for Palindrome Permutation Subarray with 0 sum
Chaining Winner of an election Subarray with given sum Subarray range with given sum
Implementation of Chaining in Python Separate chaining in Hashing Longest Subarray with equal number of 0s and 1s Positive Negative Pair
Hashing Open Addressing Linear Probing in Hashing Longest common span with same sum in binary array Zero Sum Subarrays
Double Hashing Quadratic Probing in Hashing Longest Consecutive Subsequence Subarrays with equal 1s and 0s
Implementation of Open Addressing in Python First Repeating Element Longest Subarray with given sum Sort an array according to the other
Chaining vs Open Addressing More than n/k Occurences (O(nk) solution) Sorting Elements of an Array by Frequency
Set in Python
Dictionary in Python
Count Distinct Elements in a List
Frequencies of array elements
Strings in Python Length of String Overview of Pattern Searching Naive Pattern Search
Escape Sequences and Raw Strings Vowels in String Pattern Searching in Python Pattern Search
Formatted String in Python Count Distinct Vowels in String Naive Pattern Searching Binary String
String Comparison in Python Count Words in String Improved Naive Pattern Searching for Distinct Implement strstr
String Operations Part (1) Lowercase to Upercase Rabin Karp Algorithm Check if string is rotated by two places
String Operations Part (2) Uppercase to Lowercase KMP Algorithm (Part 1 : Constructing LPS Array) Check if strings are rotations of each other or not
Reverse A String in Python String Validation KMP Algorithm (Part 2 : Complete Algorithm) Isomorphic Strings
String
Check if string is rotated Panagram Checking Anagram Search Check if a string is Isogram or not
Check For Palindrome In Python Missing Characters in Panagram Lexicographic rank of a String Keypad typing
Check if a String is Subsequence of Other Reverse a String Longest Substring With Distinct Characters Repeating Character - First Appearance Leftmost
Check for Anagram in Python Anagram Non Repeating Character
Leftmost Repeating Character Maximum Occuring Character
Leftmost Non-Repeating Element Remove common characters and concatenate
Reverse words in a string Reverse words in a given string
Sum of numbers in string
Minimum indexed character
Smallest window in a string containing all the characters of another string
Nth number made of prime digits
Video - Problems with Array Data Structure Display Linked List Reverse a linked list in groups of size k Merge two sorted linked list
Linked List Introduction in Python Sum The Nodes of Linked List Detect loop using floyd's cycle detection algorithm Swap Kth nodes from end
Simple Linked List Implementation in Python Count nodes of linked list Detect and remove loop in linked list Remove loop in linked list
Applications of Linked List Maximum And Minimum In Linked List Intersection Point of two linked list Merge sort for linlked list
Traversing a Linked List in Python Search In Linked List Segregate even odd nodes of linked list Merge sort on doubly linked list
Search in Linked List Linked List Insertion Pairwise swap nodes of linked list Merge K sorted linked list
Insert At The Bigenning of Linked list in Python Insert in Middle of Linked List Clone a linked list using a random pointer Intersection point in Y shaped linked list
Insert at The End Of Linked List Linked List Insertion At Position LRU Cache Design Clone a linked list with nest and random pointer
Insert at Given Position in Singly Linked list Insert In Sorted Linked List Merge two sorted linked lists Add two numbers represented by linked list
Linked List Delete First Node Of Linked List in Python Delete Tail of Linked List Palindrome Linked List LRU Cache
Delete Last Node of Linked List Delete Head of Linked List
Delete a node with pointer given to it Linked List Delete at Position
Sorted Insert Linked List in Python Is Linked List Sorted
Middle of Linked List Join Two Linked Lists
Nth Node From end of Linked List Remove duplicate element from sorted Linked List
Remove duplicates from a sorted Singly Linked List Identical Linked Lists
Reverse a Linked List In Python Nth node from end of linked list
Recursive Reverse A Linked List (Part 1) Reverse a linked list
Recursive Reverse A Linked List (Part 2)
Stack Data Structure Implement Stack Using Array Overview of Pattern Searching Naive Pattern Search
Stack in Python Implement Stack using Linked List Pattern Searching in Python Pattern Search
Linked List Implementation of Stack in Python Operations on Stack Naive Pattern Searching Binary String
Stack Stack Applications Removing consecutive duplicates Improved Naive Pattern Searching for Distinct Implement strstr
Check for Balanced Parenthesis in Python Removing consecutive duplicates - 2 Rabin Karp Algorithm Check if string is rotated by two places
Insert In Stack KMP Algorithm (Part 1 : Constructing LPS Array) Check if strings are rotations of each other or not
Parenthesis Checker KMP Algorithm (Part 2 : Complete Algorithm) Isomorphic Strings
Anagram Search Check if a string is Isogram or not
Lexicographic rank of a String Keypad typing
Longest Substring With Distinct Characters Repeating Character - First Appearance Leftmost
Non Repeating Character
Maximum Occuring Character
Remove common characters and concatenate
Reverse words in a given string
Sum of numbers in string
Minimum indexed character
Smallest window in a string containing all the characters of another string
Nth number made of prime digits
Binary Search Tree(Background) Insert a node in a BST Ceiling on the left side in an array Find Common Nodes in two BSTs
Binary Search Tree(Introduction) Search a node in BST Find Kth Smallest in BST Lowest Common Ancestor in a BST
Search in BST in Python Preorder in BST Check for BST Print BST elements in given range
BST insert in Python Inorder in BST Fix BST with Two Nodes Swapped Pair Sum in BST
BST Delete in Python Postorder in BST Pair Sum with Given BST Smaller on Right
Floor in BST (Problem and Solution Idea) Levelorder in BST Vertical Sum in a Binary Tree Vertical Traversal of Binary Tree
Binary SearchTree
BST Floor in Python Delete a node from BST Vertical Traversal of binary tree Top View of Binary Tree
Ceiling in BST in Python Minimum element in BST Top View of Binary Tree Bottom View of Binary Tree
Self Balancing BST Floor in BST bottom view of binary tree Check for BST
AVL Tree Ceil in BST Find the Closest Element in BST
Red Black Tree Convert Level Order Traversal to BST
Applications of BST Count BST nodes that lie in a given range
Preorder to Postorder
Merge two BST 's
Fixing Two nodes of a BST
Binary Heap Introduction Binary Heap Operations Sort K Sorted Array Kth largest element
Heap Python Implementation (Introduction) Heap Sort Purchase Maximum Items Kth smallest element
Heap Binary Heap Insert K Largest Elements K largest elements
Binary Heap (Extract min and Heapify) K Closest Elements Kth largest element in a stream
Decrease Key and Delete Operations Merge K Sorted Arrays K Most occurring elements
Build Heap Median of a Stream Minimum Cost of ropes
Heap Sort Nearly sorted
Heapq in Python Merge k Sorted Arrays
Rearrange characters
Find median in a stream
Dynamic Programming
Edit Distance Problem DP solution Count ways to N'th Stair(Order does not matter)
Longest Increasing Sub sequence Problem Count number of hops
Longest Increasing Subsequence O(nlogn) Reach a given score
Variation of LIS (Part 1) Minimum number of jumps
Variations of LIS (Part 2) nCr
Maximum Cuts Kadane's Algorithm - I
Minimum coins to make a value Kadane's Algorithm - II
Dynamic Programming
Minimum Jumps to reach the end Unique BST's
0-1 knapsack problem Sum of all substrings of a number
0-1 knapsack problem DP Solution Max sum subarray by removing at most one element
Optimal Strategy for a Game Longest Increasing Subsequence
Egg Dropping Puzzle - Part 1 Longest Common Subsequence
Egg Dropping Puzzle - Part 2 Shortest Common Supersequence
Count BSTs with n keys Number of Unique Paths
Maximum sum with no two consecutive Maximize The Cut Segments
Subset sum problem Equal Sum Partition
Subset Sum Problem (DP Solution) 0 - 1 Knapsack Problem
Matrix Chain Multiplication Optimal Strategy For A Game
Matrix Chain Multiplication (DP Solution) Egg Dropping Puzzle
Palindrome Partitioning Stickler Thief
Allocate Minimum Pages (Naive Method)
Allocate Minimum Pages (DP Solution)