{"id":18074411,"url":"https://github.com/david-kariuki/ace-the-java-coding-interview","last_synced_at":"2025-04-12T05:52:40.944Z","repository":{"id":56751108,"uuid":"522967062","full_name":"david-kariuki/ace-the-java-coding-interview","owner":"david-kariuki","description":"Java project to learn advanced Data Structures and Algorithms","archived":false,"fork":false,"pushed_at":"2023-04-16T17:26:52.000Z","size":441,"stargazers_count":53,"open_issues_count":90,"forks_count":10,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-12T05:52:33.714Z","etag":null,"topics":["dsa","dsa-learning-series","dsa-practice","dsa-project","dsalgo-questions"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/david-kariuki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"david-kariuki","patreon":"davidkariuki","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2022-08-09T13:43:32.000Z","updated_at":"2025-01-24T23:05:36.000Z","dependencies_parsed_at":"2024-10-31T10:12:37.849Z","dependency_job_id":"f070e32e-4733-4454-af53-88092e29c0d7","html_url":"https://github.com/david-kariuki/ace-the-java-coding-interview","commit_stats":null,"previous_names":["david-kariuki/ace-the-java-coding-interview"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/david-kariuki%2Face-the-java-coding-interview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/david-kariuki%2Face-the-java-coding-interview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/david-kariuki%2Face-the-java-coding-interview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/david-kariuki%2Face-the-java-coding-interview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/david-kariuki","download_url":"https://codeload.github.com/david-kariuki/ace-the-java-coding-interview/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248525156,"owners_count":21118616,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dsa","dsa-learning-series","dsa-practice","dsa-project","dsalgo-questions"],"created_at":"2024-10-31T10:12:32.148Z","updated_at":"2025-04-12T05:52:40.911Z","avatar_url":"https://github.com/david-kariuki.png","language":"Java","funding_links":["https://github.com/sponsors/david-kariuki","https://patreon.com/davidkariuki"],"categories":[],"sub_categories":[],"readme":"# Ace The Java Coding Interview\nJava project to learn advanced Data Structures and Algorithms\n\n\u003cbr\u003e\n\n![GitHub issues](https://img.shields.io/github/issues/david-kariuki/AceTheJavaCodingInterview?\u0026labelColor=black\u0026color=eb3b5a\u0026label=Issues\u0026logo=issues\u0026logoColor=black\u0026style=for-the-badge) \u0026nbsp;\n![GitHub Contributions](https://img.shields.io/github/contributors/david-kariuki/AceTheJavaCodingInterview?\u0026labelColor=black\u0026color=8854d0\u0026style=for-the-badge) \u0026nbsp;\n![repo size](https://img.shields.io/github/repo-size/david-kariuki/AceTheJavaCodingInterview?label=Repo%20Size\u0026style=for-the-badge\u0026labelColor=black\u0026color=20bf6b) \u0026nbsp;\n![GitHub forks](https://img.shields.io/github/forks/david-kariuki/AceTheJavaCodingInterview?\u0026labelColor=black\u0026color=0fb9b1\u0026style=for-the-badge) \u0026nbsp;\n![GitHub stars](https://img.shields.io/github/stars/david-kariuki/AceTheJavaCodingInterview?\u0026labelColor=black\u0026color=f7b731\u0026style=for-the-badge) \u0026nbsp;\n![GitHub LastCommit](https://img.shields.io/github/last-commit/david-kariuki/AceTheJavaCodingInterview?logo=github\u0026labelColor=black\u0026color=d1d8e0\u0026style=for-the-badge) \u0026nbsp;\n\n\n# Project Contents\n\n\n\u003cbr\u003e\n\n## 1. Complexity Problems \u003cbr\u003e\n    - Introduction to Asymptotic Analysis and Big O\n    - Challenge 1: Big (O) of Nested Loop with Addition\n    - Challenge 2: Big (O) of Nested Loop with Subtraction\n    - Challenge 3: Big O of Nested Loop with Multiplication\n    - Challenge 4: Nested Loop with Multiplication (Basic)\n    - Challenge 5: Nested Loop with Multiplication (Intermediate)\n    - Challenge 6: Nested Loop with Multiplication (Advanced)\n    - Challenge 7: Nested Loop with Multiplication (Pro)\n    - Problem Sets\n    - Complexity Interview Questions\n    - Cheat Sheet\n  \n\u003cbr\u003e\u003cbr\u003e\n## 2. DATA STRUCTURES\n\n    a. ARRAYS\n    \n        . Two Dimensional Arrays.\n        . Challenge 1: Remove Even Integers from an Array\n        . Challenge 2: Merge Two Sorted Arrays\n        . Challenge 3: Find Two Numbers that Add up to \"n\"\n        . Challenge 4: Array of Products of All Elements Except Itself\n        . Challenge 5: Find Minimum Value in Array\n        . Challenge 6: First Non-Repeating Integer in an Array\n        . Challenge 7: Find Second Maximum Value in an Array\n        . Challenge 8: Right Rotate the Array by One Index\n        . Challenge 9: Re-arrange Positive \u0026 Negative Values\n        . Challenge 10: Rearrange Sorted Array in Max/Min Form\n        . Challenge 11: Find the Sum of Maximum Sum Subarray\n        . Implement Binary Search on a Sorted Array\n        . Find Maximum in Sliding Window\n        . Search a Rotated Array\n        . Find the Smallest Common Number\n        . Find Low/High Index of an Element in a Sorted Array\n        . Move All Zeros to the Beginning of the Array\n        . Stock Buy Sell to Maximize Profit\n        . Merge an Array With Overlapping Intervals\n        . Sort an Array Using Quicksort Algorithm\n        . Cyclic Sort (easy)\n        . Maximum Sum Subarray of Size K (easy)\n        . Smallest Subarray With a Greater Sum (easy)\n        . Squaring a Sorted Array (easy)\n        . Subset (easy)\n        . Subsets With Duplicates (easy)\n        . Order-agnostic Binary Search (easy)\n        . Bitonic Array Maximum (easy)\n        .\n\n\n    b. LINKED LISTS\n    \n        . Introduction to Linked Lists\n        . Basic Linked List Operations\n        . Insertion in a Singly Linked List\n        . Challenge 1: Insertion in a Singly Linked List (insert at End)\n        . Solution Review: Insertion in a Singly Linked List(insert at End)\n        . Challenge 2: Search in Singly Linked List\n        . Solution Review: Search in a Singly Linked List\n        . Challenge 3: Deletion in Singly Linked List(Delete by Value)\n        . Solution Review: Deletion in Singly Linked List\n        . Linked Lists vs. Arrays\n        . What is a Doubly Linked List (DLL)?\n        . Linked List with Tail\n        . Challenge 4: Find the Length of a Linked List\n        . Solution Review: Find the Length of a Linked List\n        . Challenge 5: Reverse a Linked List\n        . Solution Review: Reverse a Linked List\n        . Challenge 6: Detect Loop in a Linked List\n        . Solution Review: Detect Loop in a Linked List\n        . Challenge 7: Find the Middle Node of a Linked List\n        . Solution Review: Find the Middle Node of a Linked List\n        . Challenge 8: Remove Duplicates from a Linked List\n        . Solution Review: Remove Duplicate from a Linked List\n        . Challenge 9: Union and Intersection of Lists\n        . Solution Review: Union \u0026 Intersection of Lists\n        . Challenge 10: Return the Nth node from End\n        . Solution Review: Return the Nth node from End\n        . Challenge 11: Find if Doubly Linked-list is a Palindrome\n        . Solution: Find if a Doubly Linked-list is a Palindrome\n        . Implementation of Linked List\n        . Intersection Point of Two Lists\n        . Rotate a Linked List\n        . Reverse Alternative K Node in a Singly Linked List\n        . Add Two Integers Represented by Linked Lists\n        . Reverse a Sub-list (medium)\n        . Reverse every K-element Sub-list (medium)\n        . Merge K Sorted Lists (medium)\n        . Kth Smallest Number in M Sorted Lists (medium)\n        . Linked list Interview Questions\n\n\n    c. STRINGS\n    \n        . String: Common Methods \u0026 Operations\n        . Reverse Words in a Sentence\n        . Remove Duplicates from a String\n        . Remove White Spaces from a String\n        . Word Break Problem\n        . XML to Tree\n        . Find all Palindrome Substrings\n        . Regular Expression Matching in String\n        . Longest Palindromic Substring\n        . Longest Palindromic Subsequence\n        . Count of Palindromic Substrings\n        . Minimum Deletions in a String to make it a Palindrome\n        . Palindromic Partitioning\n        . Longest Common Substring\n        . Longest Common Subsequence\n        . Minimum Deletions \u0026 Insertions to Transform a String into another\n        . Fruits into Baskets (medium)\n        . Longest Substring with maximum K Distinct Characters (medium)\n        . String Permutations by changing case (medium)\n        . Balanced Parentheses (hard)\n        . Unique Generalized Abbreviations (hard)\n        . Longest Substring with Distinct Characters (hard)\n        . Longest Substring with Same Letters after Replacement (hard)\n        . Boggle\n        . Generate all Combinations of Balanced Parentheses\n        \n        \n    d. STACKS and QUEUES  \n\n        . Introduction to Stacks \u0026 Queues\n        . Stack (Implementation)\n        . Queue (Implementation)\n        . Implement Queue Using Stacks\n        . Implement Stack Using Queues\n        . Challenge 1: Generate Binary Numbers from 1 to n using a Queue\n        . Solution Review: Generate Binary Numbers from 1 to n using Queue\n        . Challenge 2: Implement Two Stacks using one Array\n        . Solution Review: Implement Two Stacks using one Array\n        . Challenge 3: Reversing the First k Elements of a Queue\n        . Solution Review: Reversing the First k Elements of a Queue\n        . Challenge 4: Implement Queue using Stack\n        . Solution Review: Implement Queue using Stack\n        . Challenge 5: Sort the Values in a Stack\n        . Solution Review: Sort the Values in a Stack\n        . Challenge 6: Evaluate Postfix Expressions using Stacks\n        . Solution Review: Evaluate Postfix Expressions using Stacks\n        . Challenge 7: Next Greater Element using Stack\n        . Solution Review: Next Greater Element using Stack\n        . Challenge 8: Solve a Celebrity Problem using a Stack\n        . Solution Review: Solve a Celebrity Problem using a Stack\n        . Challenge 9: Check for Balanced Parentheses using a Stack\n        . Solution Review: Check for Balanced Parentheses using a Stack\n        . Challenge 10: Create Stack where min() gives minimum in O(1)\n        . Solution Review: Create Stack where min() gives minimum in O(1)\n        . Stack/Queue Interview Questions\n        \n        \n    e. TREES\n    \n        . Introduction to Trees\n        . Implementation of Binary Tree\n        . Check if Two Binary Trees are Identical\n        . Write an In-Order Iterator for a Binary Tree\n        . Iterative In-order Traversal of Binary Tree\n        . In-order Successor of Binary Search Tree\n        . In-order Successor Binary Search Tree With Parent Pointers\n        . Level Order Traversal of Binary Tree\n        . Is a Binary Search Tree Valid?\n        . Convert Binary Tree to Doubly Linked List\n        . Print Tree Perimeter\n        . Connect Same Level Siblings of a Binary Tree\n        . Connect All Siblings of a Binary Tree\n        . Serialize/Deserialize Binary Tree\n        . Nth Highest Number in Binary Search Tree\n        . Mirror Binary Tree Nodes\n        . Delete Zero Sum Sub-Trees\n        . Convert N-ary Tree to Binary Tree\n        \n        \n    f. TRIE\n    \n        . Introduction to Tries\n        . Insertion in a Trie\n        . Search in a Trie\n        . Deletion in a Trie\n        . The Structure of a Trie\n        . Challenge 1: Total Number of Words in a Trie\n        . Solution Review: Total Number of Words in a Trie\n        . Challenge 2: Find All of the Words in a Trie\n        . Solution Review: Find All of the Words in a Trie\n        . Challenge 3: Sort the Elements of an Array using a Trie.\n        . Solution Review: Sort the Elements of an Array using a Trie.\n        . Challenge 4: Word Formation from a Given Dictionary using a Trie\n        . Solution Review: Word Formation from Given Dictionary using Trie\n        . Trie Interview Questions\n        \n        \n    g. HEAPS\n    \n        . Introduction to Heaps\n        . Heap Representation in Arrays\n        . Max Heap: Introduction\n        . Max Heap (Implementation)\n        . Min Heap: An Introduction\n        . Min Heap (Implementation)\n        . Challenge 1: Convert a Max-Heap to a Min-Heap\n        . Solution Review: Convert a Max-Heap to a Min-Heap\n        . Challenge 2: Find the k Smallest Elements in an Array\n        . Solution Review: Find the k Smallest Elements in an Array\n        . Challenge 3: Find the k Largest Elements in an Array\n        . Solution Review: Find the k Largest Elements in an Array\n        . Heap Interview Questions\n        \n        \n    h. HASH TABLES\n    \n        . Introduction to Hash Tables\n        . Trie vs Hash Table\n        . HashMap vs HashSet\n        . Challenge 1: Find whether an array is a subset of another array\n        . Solution Review: Find whether an array is a subset of another array\n        . Challenge 2: Check if the given arrays are disjoint\n        . Solution Review: Check if the given arrays are disjoint\n        . Challenge 3: Find symmetric pairs in an Array\n        . Solution Review: Find symmetric pairs in an Array\n        . Challenge 4: Trace the complete path of a journey\n        . Solution Review: Trace the complete path of a journey\n        . Challenge 5: Find two pairs in an Array such that a+b = c+d\n        . Solution Review: Find two pairs in an Array such that a+b = c+d\n        . Challenge 6: Find If a Subarray with a Sum Equal to 0 Exists\n        . Solution Review: Find if a subarray with a sum equal to 0 exists.\n        . Challenge 7: First Non-Repeating Integer in an Array\n        . Solution Review: First Non-Repeating Integer in an Array\n        . Challenge 8: Remove Duplicate from a Linked List using Hashing\n        . Solution Review: Remove Duplicate from Linked List using Hashing\n        . Challenge 9: Union and Intersection of Lists using Hashing\n        . Solution Review: Union and Intersection of Lists using Hashing\n        . Challenge 10: Find Two Numbers that Add up to \"n\"\n        . Solution Review: Find Two Numbers that Add up to \"n\"\n        . Hashing Interview Questions\n        \n        \n    i. GRAPHS\n    \n        . Introduction to Graphs\n        . Graph Implementation\n        . What is a Bipartite Graph?\n        . Challenge 1: Implement Breadth First Search\n        . Solution Review: Implement Breadth First Search\n        . Challenge 2: Implement Depth First Search\n        . Solution Review: Implement Depth First Search\n        . Challenge 3: Cycle Detection in a Directed Graph\n        . Solution Review: Cycle Detection in a Directed Graph\n        . Challenge 4: Find \"Mother Vertex\" in a Directed Graph\n        . Solution Review: Find \"Mother Vertex\" in a Directed Graph\n        . Challenge 5: Count the Number of Edges in an Undirected Graph\n        . Solution Review: Count the number of Edges in an Undirected Graph\n        . Challenge 6: Check if a Path Exists Between Two Vertices\n        . Solution Review: Check if a Path Exists Between Two Vertices\n        . Challenge 7: Check if a Directed Graph is Tree or not\n        . Solution Review: Check if a Directed Graph is Tree or not\n        . Challenge 8: Find Length of Shortest Path between Two Vertices\n        . Solution Review: Find the Shortest Path between Two Vertices\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavid-kariuki%2Face-the-java-coding-interview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavid-kariuki%2Face-the-java-coding-interview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavid-kariuki%2Face-the-java-coding-interview/lists"}