Java project to learn advanced Data Structures and Algorithms
- Introduction to Asymptotic Analysis and Big O
- Challenge 1: Big (O) of Nested Loop with Addition
- Challenge 2: Big (O) of Nested Loop with Subtraction
- Challenge 3: Big O of Nested Loop with Multiplication
- Challenge 4: Nested Loop with Multiplication (Basic)
- Challenge 5: Nested Loop with Multiplication (Intermediate)
- Challenge 6: Nested Loop with Multiplication (Advanced)
- Challenge 7: Nested Loop with Multiplication (Pro)
- Problem Sets
- Complexity Interview Questions
- Cheat Sheet
a. ARRAYS
. Two Dimensional Arrays.
. Challenge 1: Remove Even Integers from an Array
. Challenge 2: Merge Two Sorted Arrays
. Challenge 3: Find Two Numbers that Add up to "n"
. Challenge 4: Array of Products of All Elements Except Itself
. Challenge 5: Find Minimum Value in Array
. Challenge 6: First Non-Repeating Integer in an Array
. Challenge 7: Find Second Maximum Value in an Array
. Challenge 8: Right Rotate the Array by One Index
. Challenge 9: Re-arrange Positive & Negative Values
. Challenge 10: Rearrange Sorted Array in Max/Min Form
. Challenge 11: Find the Sum of Maximum Sum Subarray
. Implement Binary Search on a Sorted Array
. Find Maximum in Sliding Window
. Search a Rotated Array
. Find the Smallest Common Number
. Find Low/High Index of an Element in a Sorted Array
. Move All Zeros to the Beginning of the Array
. Stock Buy Sell to Maximize Profit
. Merge an Array With Overlapping Intervals
. Sort an Array Using Quicksort Algorithm
. Cyclic Sort (easy)
. Maximum Sum Subarray of Size K (easy)
. Smallest Subarray With a Greater Sum (easy)
. Squaring a Sorted Array (easy)
. Subset (easy)
. Subsets With Duplicates (easy)
. Order-agnostic Binary Search (easy)
. Bitonic Array Maximum (easy)
.
b. LINKED LISTS
. Introduction to Linked Lists
. Basic Linked List Operations
. Insertion in a Singly Linked List
. Challenge 1: Insertion in a Singly Linked List (insert at End)
. Solution Review: Insertion in a Singly Linked List(insert at End)
. Challenge 2: Search in Singly Linked List
. Solution Review: Search in a Singly Linked List
. Challenge 3: Deletion in Singly Linked List(Delete by Value)
. Solution Review: Deletion in Singly Linked List
. Linked Lists vs. Arrays
. What is a Doubly Linked List (DLL)?
. Linked List with Tail
. Challenge 4: Find the Length of a Linked List
. Solution Review: Find the Length of a Linked List
. Challenge 5: Reverse a Linked List
. Solution Review: Reverse a Linked List
. Challenge 6: Detect Loop in a Linked List
. Solution Review: Detect Loop in a Linked List
. Challenge 7: Find the Middle Node of a Linked List
. Solution Review: Find the Middle Node of a Linked List
. Challenge 8: Remove Duplicates from a Linked List
. Solution Review: Remove Duplicate from a Linked List
. Challenge 9: Union and Intersection of Lists
. Solution Review: Union & Intersection of Lists
. Challenge 10: Return the Nth node from End
. Solution Review: Return the Nth node from End
. Challenge 11: Find if Doubly Linked-list is a Palindrome
. Solution: Find if a Doubly Linked-list is a Palindrome
. Implementation of Linked List
. Intersection Point of Two Lists
. Rotate a Linked List
. Reverse Alternative K Node in a Singly Linked List
. Add Two Integers Represented by Linked Lists
. Reverse a Sub-list (medium)
. Reverse every K-element Sub-list (medium)
. Merge K Sorted Lists (medium)
. Kth Smallest Number in M Sorted Lists (medium)
. Linked list Interview Questions
c. STRINGS
. String: Common Methods & Operations
. Reverse Words in a Sentence
. Remove Duplicates from a String
. Remove White Spaces from a String
. Word Break Problem
. XML to Tree
. Find all Palindrome Substrings
. Regular Expression Matching in String
. Longest Palindromic Substring
. Longest Palindromic Subsequence
. Count of Palindromic Substrings
. Minimum Deletions in a String to make it a Palindrome
. Palindromic Partitioning
. Longest Common Substring
. Longest Common Subsequence
. Minimum Deletions & Insertions to Transform a String into another
. Fruits into Baskets (medium)
. Longest Substring with maximum K Distinct Characters (medium)
. String Permutations by changing case (medium)
. Balanced Parentheses (hard)
. Unique Generalized Abbreviations (hard)
. Longest Substring with Distinct Characters (hard)
. Longest Substring with Same Letters after Replacement (hard)
. Boggle
. Generate all Combinations of Balanced Parentheses
d. STACKS and QUEUES
. Introduction to Stacks & Queues
. Stack (Implementation)
. Queue (Implementation)
. Implement Queue Using Stacks
. Implement Stack Using Queues
. Challenge 1: Generate Binary Numbers from 1 to n using a Queue
. Solution Review: Generate Binary Numbers from 1 to n using Queue
. Challenge 2: Implement Two Stacks using one Array
. Solution Review: Implement Two Stacks using one Array
. Challenge 3: Reversing the First k Elements of a Queue
. Solution Review: Reversing the First k Elements of a Queue
. Challenge 4: Implement Queue using Stack
. Solution Review: Implement Queue using Stack
. Challenge 5: Sort the Values in a Stack
. Solution Review: Sort the Values in a Stack
. Challenge 6: Evaluate Postfix Expressions using Stacks
. Solution Review: Evaluate Postfix Expressions using Stacks
. Challenge 7: Next Greater Element using Stack
. Solution Review: Next Greater Element using Stack
. Challenge 8: Solve a Celebrity Problem using a Stack
. Solution Review: Solve a Celebrity Problem using a Stack
. Challenge 9: Check for Balanced Parentheses using a Stack
. Solution Review: Check for Balanced Parentheses using a Stack
. Challenge 10: Create Stack where min() gives minimum in O(1)
. Solution Review: Create Stack where min() gives minimum in O(1)
. Stack/Queue Interview Questions
e. TREES
. Introduction to Trees
. Implementation of Binary Tree
. Check if Two Binary Trees are Identical
. Write an In-Order Iterator for a Binary Tree
. Iterative In-order Traversal of Binary Tree
. In-order Successor of Binary Search Tree
. In-order Successor Binary Search Tree With Parent Pointers
. Level Order Traversal of Binary Tree
. Is a Binary Search Tree Valid?
. Convert Binary Tree to Doubly Linked List
. Print Tree Perimeter
. Connect Same Level Siblings of a Binary Tree
. Connect All Siblings of a Binary Tree
. Serialize/Deserialize Binary Tree
. Nth Highest Number in Binary Search Tree
. Mirror Binary Tree Nodes
. Delete Zero Sum Sub-Trees
. Convert N-ary Tree to Binary Tree
f. TRIE
. Introduction to Tries
. Insertion in a Trie
. Search in a Trie
. Deletion in a Trie
. The Structure of a Trie
. Challenge 1: Total Number of Words in a Trie
. Solution Review: Total Number of Words in a Trie
. Challenge 2: Find All of the Words in a Trie
. Solution Review: Find All of the Words in a Trie
. Challenge 3: Sort the Elements of an Array using a Trie.
. Solution Review: Sort the Elements of an Array using a Trie.
. Challenge 4: Word Formation from a Given Dictionary using a Trie
. Solution Review: Word Formation from Given Dictionary using Trie
. Trie Interview Questions
g. HEAPS
. Introduction to Heaps
. Heap Representation in Arrays
. Max Heap: Introduction
. Max Heap (Implementation)
. Min Heap: An Introduction
. Min Heap (Implementation)
. Challenge 1: Convert a Max-Heap to a Min-Heap
. Solution Review: Convert a Max-Heap to a Min-Heap
. Challenge 2: Find the k Smallest Elements in an Array
. Solution Review: Find the k Smallest Elements in an Array
. Challenge 3: Find the k Largest Elements in an Array
. Solution Review: Find the k Largest Elements in an Array
. Heap Interview Questions
h. HASH TABLES
. Introduction to Hash Tables
. Trie vs Hash Table
. HashMap vs HashSet
. Challenge 1: Find whether an array is a subset of another array
. Solution Review: Find whether an array is a subset of another array
. Challenge 2: Check if the given arrays are disjoint
. Solution Review: Check if the given arrays are disjoint
. Challenge 3: Find symmetric pairs in an Array
. Solution Review: Find symmetric pairs in an Array
. Challenge 4: Trace the complete path of a journey
. Solution Review: Trace the complete path of a journey
. Challenge 5: Find two pairs in an Array such that a+b = c+d
. Solution Review: Find two pairs in an Array such that a+b = c+d
. Challenge 6: Find If a Subarray with a Sum Equal to 0 Exists
. Solution Review: Find if a subarray with a sum equal to 0 exists.
. Challenge 7: First Non-Repeating Integer in an Array
. Solution Review: First Non-Repeating Integer in an Array
. Challenge 8: Remove Duplicate from a Linked List using Hashing
. Solution Review: Remove Duplicate from Linked List using Hashing
. Challenge 9: Union and Intersection of Lists using Hashing
. Solution Review: Union and Intersection of Lists using Hashing
. Challenge 10: Find Two Numbers that Add up to "n"
. Solution Review: Find Two Numbers that Add up to "n"
. Hashing Interview Questions
i. GRAPHS
. Introduction to Graphs
. Graph Implementation
. What is a Bipartite Graph?
. Challenge 1: Implement Breadth First Search
. Solution Review: Implement Breadth First Search
. Challenge 2: Implement Depth First Search
. Solution Review: Implement Depth First Search
. Challenge 3: Cycle Detection in a Directed Graph
. Solution Review: Cycle Detection in a Directed Graph
. Challenge 4: Find "Mother Vertex" in a Directed Graph
. Solution Review: Find "Mother Vertex" in a Directed Graph
. Challenge 5: Count the Number of Edges in an Undirected Graph
. Solution Review: Count the number of Edges in an Undirected Graph
. Challenge 6: Check if a Path Exists Between Two Vertices
. Solution Review: Check if a Path Exists Between Two Vertices
. Challenge 7: Check if a Directed Graph is Tree or not
. Solution Review: Check if a Directed Graph is Tree or not
. Challenge 8: Find Length of Shortest Path between Two Vertices
. Solution Review: Find the Shortest Path between Two Vertices