- resources
- interview-experiences
-
resources
-
Understanding B-Trees: The Data Structure Behind Modern Databases
-
Fibonacci Heaps or "How to invent an extremely clever data structure"
-
william-fiset
-
Coursera
- Cracking the Coding Interview
- Data Structures And Algorithms Made Easy In JAVA
- Data Structures And Algorithms Made Easy
- Introduction to Algorithms fourth edition by Cormen
- Computer Algorithms by Horowitz and Sahani
- resources
- codes
- codes
- resources
- codes
- resources
- codes
- resources
- codes
- resources
- codes
- resources
- codes
- resources
- codes
- resources
- codes
- codes
- codes
- Largest Element in an Array
- Longest Continuous Increasing Subsequence
- Best Time to Buy and Sell Stock
- Find Second Smallest and Second-Largest Element in an array
- Check if the array is sorted
- Minimum Average of Smallest and Largest Elements
- Find the Minimum Area to Cover All Ones I
- Distribute Elements Into Two Arrays I
- Find the duplicate in an array of N+1 integers
- hashing
- swap-sort
- Cycle-Detection-Using-Tortoise-Method
- Remove Duplicates in-place from Sorted Array
- Left Rotate an array by one place
- Left rotate an array by D places
- Move Zeros to end
- Linear Search
- Union of Two Sorted Arrays
- Vowels Game in a String
- Find missing number in an array
- bit-manipulation
- hashing
- Find the repeating and missing numbers
- bit-manipulation
- hashing
- Maximum Consecutive Ones
- Find the number that appears once, and the other numbers twice
- bit-manipulation
- Longest Consecutive Sequence in an Array
- hashing
- Product of Array Except Self
- hashing
- prefix-sum
- Longest Subarray with given Sum K(Positives)
- prefix-sum
- two-pointer
- Longest Subarray with given Sum K with Positives and Negatives
- prefix-sum
- two-pointer
- Longest Subarray with sum equals to Zero
- prefix-sum
- Longest Subarray xor equal to K
- prefix-sum
- Count of subarray sum equals K
- prefix-sum
- Count of subarray xor equal to K
- prefix-sum
- Two Sum : Check if a pair with given sum exists in Array
- two-pointer
- hashing
- 3 Sum : Find triplets that add up to a zero
- two-pointer
- hashing
- 4 Sum / Find Quads that add up to a target value
- two-pointer
- hashing
- Sort an array of 0's 1's and 2's
- three-pointer (Dutch national flag)
- hashing
- Find the Majority Element that occurs more than N/2 times
- Boyer Moore's voting algorithm
- hashing
- Majority Elements(>N/3 times) / Find the elements that appear more than N/3 times in the array
- Moore's voting algorithm
- hashing
- Insert Delete GetRandom O(1)
- Grid Unique Paths / Count paths from left-top to the right bottom of a matrix
- dynamic-programming
- combination-approach
- Count Pairs That Form a Complete Day II
- Kadane’s Algorithm : Maximum Subarray Sum in an Array for consecutive elements
- Print maximum Subarray Sum in an Array for consecutive elements
- Maximum Subarray Sum in an Array for non-consecutive elements
- Rearrange Array Elements by Sign
- next_permutation : find next lexicographically greater permutation
- Leaders in an Array
- Set Matrix Zero
- Rotate Image by 90 degree
- Spiral Traversal of Matrix
- Program to generate Pascal’s Triangle
- Merge Overlapping Sub-intervals
- greedy
- Merge two Sorted Arrays Without Extra Space
- Count inversions in an array
- Count Reverse Pairs
- merge-technique-from-merge-sort
- Maximum Product Subarray in an Array
- Car Fleet TBD
- Remove Element TBD
- 3Sum Closest
- Trapping Rainwater
- two-pointer
- stack
- dynamic-programming
- Find the Count of Monotonic Pairs I
- Adjacent Increasing Subarrays Detection I
- Adjacent Increasing Subarrays Detection II
- codes
- Maximum Sum Subarray of size K
- First Negative Number in every Window of Size K
- Count Occurrences Of Anagrams
- Maximum of all subarrays of size k
- queue
- Longest Substring With K Unique Characters / Variable Size Sliding Window
- Longest Substring With Without Repeating Characters / Variable Size Sliding Window
- Fruit Into Baskets / Pick Toys / An Interesting Sliding Window Problem
- Minimum Window Substring / Variable Size Sliding Window
- Minimum Window Subsequence
- Maximum Sum of Distinct Subarrays With Length K
- Subarrays with at most K Different Integers
- Subarrays with exactly K Different Integers
- Number of Substrings Containing All Three Characters
- Max Consecutive Ones III
- Longest Repeating Character Replacement
- Binary Subarrays With Sum
- prefix-sum
- Count Number of Nice Subarrays
- prefix-sum
- Maximum Points You Can Obtain from Cards
- dynamic-programming
- Container With Most Water
- Frequency of the Most Frequent Element
- Count Distinct Elements In Every Window
- Count Substrings With K-Frequency Characters I
- resources
- codes
- codes
- Binary Search
- Binary Search in reverse sorted array
- Order not known binary search
- Lower Bound
- Upper Bound
- Search Insert Position
- Floor and Ceil in Sorted Array
- Next alphabetical element
- Find position in infinite sorted array
- Closest element in a sorted array
- First occurrence of 1 in an infinite sorted binary array
- Find the first or last occurrence of a given number in a sorted array
- Count Occurrences in Sorted Array
- Search in Rotated Sorted Array I
- Search in Rotated Sorted Array II
- Searching in nearly sorted array
- Find out how many times the sorted array has been rotated
- Minimum in Rotated Sorted Array
- Single Element in a Sorted Array
- Find peak element
- Find maximum in bitonic array
- Find in bitonic array
- Finding Integer Sqrt of a number
- Finding Fractional Square root of a number
- Nth Root of a Number
- Pow(x, n)
- 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
- Kth Missing Positive Number
- Aggressive Cows
- Allocate Minimum Number of Pages
- Split Array Largest Sum
- Painter's Partition Problem
- Minimize Max Distance to Gas Station
- Median of Two Sorted Arrays
- K-th Element of Two Sorted Arrays
- Count Negative Numbers in a Sorted Matrix
- Find the row with maximum number of 1
- Search in a sorted 2D matrix
- Search a 2D Matrix II
- Find a Peak Element II
- Median of Row Wise Sorted Matrix
- codes
- Encode and Decode Strings
- Decode String
- Compare version number
- Remove Outermost Parentheses
- Reverse Words in a String
- Reverse Words
- Largest Odd Number in String
- Longest Common Prefix
- Isomorphic Strings
- Rotate String
- Check if two Strings are anagrams of each other
- Group anagrams
- Sort Characters by frequency
- Maximum Nesting Depth of the Parentheses
- Roman to Integer
- Integer to Roman
- Implement Atoi
- Count With K Different Characters
- Sum of Beauty of All Substrings
- Minimum Add to Make Parentheses Valid
- Count and Say
- Valid palindrome
- Longest Palindrome
- Shortest Palindrome / Minimum Characters For Palindrome
- Longest palindromic substring
- Count Palindromic Subsequences
- Palindromic Substrings
- Repeated String Match
- Longest happy prefix
- Find the index of first occurrence of a word in a string
- Splitting string into descending consecutive values
- Find the Sequence of Strings Appeared on the Screen
- resources
- codes
- Introduction To Linked List
- Inserting a node in LinkedList
- Deleting a node in LinkedList
- Delete Last Node of Linked List
- Find the Length of a Linked List
- Search an element in a Linked List
- Introduction To Doubly Linked List
- Insert at end of Doubly Linked List
- Delete Last Node of a Doubly Linked List
- Reverse A Doubly Linked List
- Find middle element in a Linked List
- Reverse a Linked List
- Reverse Linked List II
- Swap Nodes in Pairs
- Detect a loop in Linked List
- Find the starting point in Linked List
- Length of Loop in Linked List
- Check if Linked List is palindrome or not
- Segregate odd and even nodes in Linked List
- Remove N-th node from the end of a Linked List
- Reorder List
- Delete the middle node of Linked List
- Merge Two Sorted Linked Lists
- Insertion Sort List Linked Lists
- Merge Sort on Linked Lists
- Sort Linked List
- Sort linked list of 0s 1s 2s
- Intersection of Two Linked Lists
- Intersection of Two Linked Lists II
- Add 1 to a number represented by Linked List
- Add 2 numbers in Linked List
- Delete all occurrences of a given key in a doubly linked list
- Find pairs with given sum in sorted doubly linked list
- Remove duplicates from a sorted Doubly Linked List
- Remove Duplicates from Sorted List II
- Reverse Linked List in group of given size K
- Rotate a Linked List
- Flattening of Linked List
- Clone Linked List with Random and Next Pointer
- Design Linked List
- LRU Cache
- hashing
- LFU Cache
- hashing
- resources
- codes
- Recursion theory
- Factorial
- Fibonacci
- Tower of hanoi
- Binary search recursively
- Reverse of an array
- String is palindrome or not
- Height of a binary tree/Max depth of a Binary tree
- Recursive Implementation of atoi()
- Pow(x, n)
- Count Good Numbers
- Sort an array
- Sort a stack using recursion
- Reverse a stack using recursion
- Delete the middle element of the stack
- Generate all binary strings with no consecutive 1s
- Generate Parentheses
- Print N-bit binary numbers having more 1s than 0s
- Subarrays with Sum k
- Print all subsequences/Power Set with unique elements
- Print all subsequences/Power Set with duplicate elements
- Combination sum 1
- Combination sum 2
- Combination sum 2
- Subset sum
- More subsequence
- dynamic-programming
- Count of Subset sum equal to k
- Print subset sum divisible by K
- Letter Combinations of a Phone Number
- Palindrome Partitioning
- Word Search 1
- Word Search 2
- trie
- N Queen problem
- Rat In a Maze
- M Coloring Problem
- Sudoku Solver
- K-th Symbol in Grammar
- Find Kth Bit in Nth Binary String
- Expression Add Operators
- Permutation with spaces
- Letter case permutation
- Print all permutations of string or array
- Permutations II
- Kth permutation sequence
- Largest number in K swaps
- N Digit numbers with digits in increasing order
- Print all word breaks
- Josephus problem
- Parsing A Boolean Expression
- codes
- Implement Stack using Arrays
- Implement Stack using Queue
- Implement stack using Linkedlist
- Valid Parentheses
- Longest Valid Parentheses
- array
- string
- dynamic-programming
- Implement Min Stack
- Infix to Postfix
- Postfix to Infix
- Infix To Prefix
- Prefix to Infix
- Prefix to Postfix
- Postfix to Prefix
- Next Greater Element
- Next Greater Element for different array
- Next Greater Element in a Circle
- Number of Greater Elements to the right
- Next Smaller Element
- Previous Greater Element
- Previous Smaller Element
- Daily Temperatures
- Sum of subarray minimum
- Sum of subarray maximum
- Sum of Subarray Ranges
- Asteroid Collision
- Remove K Digits
- Largest rectangle in a histogram
- Maximal Rectangles in a Binary Matrix
- Sliding Window maximum
- Stock span problem
- The Celebrity Problem
- codes
- codes
- Heap Example
- Implement a priority queue
- Min Heap Implementation
- Convert Min Heap To Max Heap
- Kth Largest Element in an Array
- Kth Smallest Element in an Array
- K largest Element in an Array
- Sort K sorted array
- Merge M sorted Arrays
- Merge k Sorted Lists
- Replace elements by its rank in the array
- Task Scheduler
- Hands of Straights
- Design Twitter
- Connect n ropes with minimum cost
- Kth Largest Element in a Stream
- Maximum Sum Combination
- Find Median from Data Stream
- K most frequent elements
- Sort Array by Increasing Frequency
- Find K Closest Elements
- K Closest Points to Origin
- K-th Nearest Obstacle Queries
- Sum of elements between k1'th and k2'th smallest elements
- Find K Pairs with Smallest Sums
- Find Minimum Time to Reach Last Room I
- Find Minimum Time to Reach Last Room II
-
resources
-
codes
- Introduction to Bit Manipulation
- Negative of a Number
- How many Bits are required to represent a number
- Swap two numbers
- XOR of 0 to n numbers
- L to R XOR
- Set Kth bit of a number
- Clear kth bit of a number
- Toggle kth bit of a number
- Check whether K-th bit is set or not
- Find nth magic number
- Minimum Bit Flips to Convert Number
- Check if a number is odd or not
- Remove the right most set bit
- Count the number of set bits
- Check if a number is power of 2 or not
- Good Number
- Number of Bit Changes to Make Two Integers Equal
- Extract the right most set bit
- Extract the left most set bit
- Find total set bit for range 0 to 2^n
- Count total set bits
- Reverse Bits
- Find two integer come once in a array/Two Numbers With Odd Occurrences
- XOR of every subset in a power set
- Petr and a Combination Lock
- Bit Set
- Set The Rightmost Unset Bit
- Divide Two Integers
- Addition without plus(+) operator
- Minimum XOR in an array
- Maximum XOR in an array
- [trie]
- Maximum XOR of two number
- Maximum XOR with an element from array
- [trie]
- Maximum XOR sum of two arrays
- Power of x to n
-
resources
-
codes
- Check if the number is prime or not
- All divisors of a number
- Sum of all divisors from 1 to n
- Find three distinct numbers whose multiplication equals to n
- Sieve of Eratosthenes
- Prime count for the range 0 to N
- Kth prime number
- For a specific a range, find the count of N, such that N is the prime factor of the other number
- Prime factorization of given number
- Segmented Sieve
- codes
- Assign Cookies
- Fractional Knapsack
- Find Minimum Number Of Coins
- Lemonade Change
- Valid Parenthesis String with escape character(*)
- N meetings in one room
- Meeting Rooms
- Meeting Rooms II
- Minimum number of platforms required for a railway
- Job Sequencing Problem
- Shortest Job First (or SJF) CPU Scheduling
- candy
- Insert Interval
- Non-overlapping Intervals
- Increasing Triplet Subsequence
- Minimum Number of Pushes to Type Word I
- Minimum Number of Pushes to Type Word II
- resources
- Dynamic Programming - Learn to Solve Algorithmic Problems & Coding Challenges
- Dynamic Programming Playlist / Coding / Interview Questions / Tutorials / Algorithm
- Dynamic Programming Playlist / Interview Questions / Recursion / Tabulation / Striver / C++ / Java / DSA / Placements
- Dynamic Programming
- Dynamic programming
- Dynamic Programming
- Dynamic Programming - Level 1
- Dynamic Programming - Level 2
- Complete Dynamic Programming By Rajneesh Kumar
- codes
- introduction
- Fibonacci series
- Climbing stairs
- Frog Jump
- Frog jump with K distances
- Maximum Sum of Non-Adjacent Elements / House Robber 1
- House robber 2
- Decode Ways
- Ninja's Training
- Grid Unique paths
- Grid Unique paths 2
- Minimum path Sum
- Minimum path sum in a triangle
- Minimum/Maximum Falling Path Sum | Variable Starting and Ending Points
- Cherry Pickup 1
- Cherry Pickup 2
- 0/1 Knapsack problems
- Unbounded Knapsack
- Longest common subsequence
- Longest common subsequence
- Print Longest common subsequence
- Longest common substring
- Shortest common super sequence
- Minimum Number of Insertions and Deletion to convert String a to String b
- Longest Palindromic Subsequence
- Longest Palindromic Substring
- Minimum number of deletions in a string to make it a palindrome
- Minimum number of insertions in a string to make it a palindrome
- Longest repeating subsequence
- Sequence Pattern Matching
- Distinct Subsequences
- Edit Distance
- Wildcard Matching
- Longest increasing subsequence
- Longest Increasing Subsequence
- Printing Longest Increasing Subsequence
- Largest Divisible Subset
- Longest String Chain
- Longest Bitonic Subsequence
- Number of Longest Increasing Subsequences
- Maximum Total Damage With Spell Casting
- Max Sum Increasing Subsequence
- Max Sum Increasing Subsequence of length k
- DP on stocks
- Matrix chain multiplication
- DP on squares
- others
- introduction
- resources
- codes
- resources
- codes
- Introduction to binary tree
- Maximum number Of Nodes in nth label in a binary tree
- Binary Tree Paths
- Binary tree Traversal
- Inorder Traversal
- Preorder Traversal
- Postorder Traversal
- Level wise order Traversal
- Preorder Inorder Postorder Traversals in One Traversal
- Height of a Binary Tree/Maximum Depth of Binary Tree
- Second minimum value in the binary tree
- Check if the Binary Tree is Balanced Binary Tree
- Diameter of a Binary Tree
- Path Sum II
- Maximum Path Sum in Binary Tree from any node to any node
- Maximum Path Sum in Binary Tree from leaf to leaf
- Check if two trees are identical
- Invert/Flip Binary Tree (Create)
- Subtree of Another Tree
- Zig Zag Traversal Of Binary Tree
- Vertical Order Traversal of Binary Tree
- Top view of a Binary Tree
- Bottom view of a Binary Tree
- Left view of Binary Tree
- Right view of Binary Tree
- Boundary Traversal of Binary Tree
- Symmetric Binary Tree
- Print Root to Node Path in a Binary Tree
- Lowest Common Ancestor of a Binary Tree
- Maximum Width of Binary Tree
- Children Sum Property in a Binary Tree
- Populating Next Right Pointers in Each Node
- Nodes at Distance K in a Binary Tree
- Minimum time taken to BURN the Binary Tree from a Node
- Count Complete Tree Nodes in a Binary Tree
- Requirements needed to construct a Unique Binary Tree / Theory
- Construct A Binary Tree from Inorder and Preorder Traversal
- Construct Binary Tree from Inorder and PostOrder Traversal
- Serialize and deserialize Binary Tree
- Morris Inorder Traversal of a Binary Tree
- Morris Preorder Traversal of a Binary Tree
- Flatten Binary Tree to LinkedList
- others
- resources
- codes
- Introduction to Binary Search Trees
- Search in a Binary Search Tree
- Minimum element in BST
- Maximum element in BST
- Ceil in a Binary Search Tree
- Floor in a Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Insert a Given Node in Binary Search Tree
- Delete a Node in Binary Search Tree
- Kth largest/smallest element in Binary Search Tree
- Validate Binary Search Tree
- Lowest Common Ancestor of a Binary Search Tree
- Construct Binary Search Tree from Preorder Traversal
- Inorder Successor/Predecessor in Binary Search Tree
- Convert a normal Binary Search Tree to Balanced Binary Search Tree
- Merge Two Binary Search Tree
- Binary Search Tree Iterator
- Two Sum In Binary Search Tree
- Recover Binary Search Tree / Correct Binary Search Tree with two nodes swapped
- Largest Binary Search Tree in Binary Tree
- Maximum Sum BST in Binary Tree
- resources
- codes
- Introduction to graph
- Introduction to Graph
- Clone Graph
- Breadth First Search (BFS): Level Order Traversal
- Depth First Search
- Graph valid tree
- Number of Provinces
- Number of Islands
- Flood Fill
- Rotting Oranges
- Detect Cycle in an Undirected Graph
- 0/1 Matrix (Bfs Problem)
- Surrounded Regions (dfs)
- Number of Enclaves / flood fill implementation — multisource
- Number of Distinct Islands / dfs multisource
- Bipartite Graph
- Detect cycle in a directed graph (using DFS)
- Pacific Atlantic Water Flow
- Topo Sort
- Shortest Path Algorithms
- Shortest Path in Directed Acyclic Graph
- Shortest Path in Undirected Graph with Unit Weights
- Word Ladder 1
- Word Ladder 2
- Dijkstra's Algorithm
- Shortest Path in Weighted undirected graph using Dijkstra
- Shortest Distance in a Binary Maze
- Path With Minimum Effort
- Cheapest Flights Within K Stops
- Network Delay Time
- Minimum Multiplications to Reach End
- Number of Ways to Arrive at Destination
- Swim in Rising Water
- Bellman Ford
- Floyd Warshall
- Find the City With the Smallest Number of Neighbors at a Threshold Distance
- Minimum Spanning Tree
- Minimum Spanning Tree - Theory
- Prim's Algorithm—Minimum Spanning Tree
- Disjoint Set | Union by Rank | Union by Size | Path Compression
- Kruskal's Algorithm - Minimum Spanning Tree
- Number of Provinces - Disjoint Set
- Number of Operations to Make Network Connected—Using Disjoint Set
- Accounts Merge—Using Disjoint Set
- Number of Islands - II - Online Queries—Using Disjoint Set
- Making a Large Island - Disjoint Set
- Most Stones Removed with Same Row or Column
- Other Algorithm
- others
- Introduction to graph
- resources
- codes
- general
- lazy propagation
- resources
- codes
- resources
- codes
- general
- bit manipulation
- resources
- codes