lrrp / AceTheJavaCodingInterview

Java project to learn advanced Data Structures and Algorithms

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AceTheJavaCodingInterview

Java project to learn advanced Data Structures and Algorithms


GitHub issues   GitHub Contributions   repo size   GitHub forks   GitHub stars   GitHub LastCommit  

Project Contents


1. Complexity Problems

- 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



2. DATA STRUCTURES

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

About

Java project to learn advanced Data Structures and Algorithms

License:MIT License


Languages

Language:Java 100.0%