Skip to content

Grokking the Coding Interview Patterns: Includes Topic Tutorials Plus LeetCode Questions & Solutions in JAVA ☕️ ... In addition, I've included Practice Questions Curated By LeetCode.

Notifications You must be signed in to change notification settings

AAdewunmi/Grokking-the-Coding-Interview-Patterns-for-Coding-Questions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Project Title:

Grokking the Coding Interview Patterns: Includes Topic Tutorials Plus LeetCode Questions & Solutions in JAVA ☕️ ... In addition, I've included Practice Questions Curated By LeetCode.

1. Project Description:

This repository contains topic tutorials on "must know" coding interview patterns, their associated LeetCode questions and solutions in Java programming language. It is based on "Grokking the Coding Interview: Patterns for Coding Questions" by Design Gurus.

Each section is structured as follows:

* Bitwise XOR

    L Bitwise_XOR_Tutorial.txt (What is Bitwise XOR (exclusive OR)?)
    
    L Problem_1_Single_Number.java (LeetCode Question: 136. Single Number)

    L Problem_2_Two_Single_Numbers.java (LeetCode Question: 260. Single Number III)

    L Problem_3_Complement_Of_Base_10_Number.java (LeetCode Question: 1009. Complement of Base 10 Integer)

    L Problem_4_Flip_And_Invert_An_Image.java (LeetCode Question: 832. Flipping an Image)

2. Prerequisites:

Before solving Leetcode problems, make sure you are familiar with the following:

* Fundermentals of programming in Java Language

* Collections in Java 
    
    L Interfaces: Set, List, Queue, Deque 

    L Classes: ArrayList, Vector, LinkedList, PriorityQueue, HashSet, LinkedHashSet, TreeSet, etc.

* Data Structures and Algorithms in Java

    L Data Structure: Stack, Queue, Graph, Tree, etc.

    L Algorithms: Sorting, Searching, etc

3. Outline:

Coding Interview Patterns are classified according to skills level:

* Fundamental:

1. Two Pointers

2. Fast And Slow Pointers

3. Sliding Window

4. Merge Intervals

5. Cyclic Sort

6. LinkedList - In-Place Reversal

7. Stack

8. Island Pattern (Matrix Traversal)

9. Prefix Sum

* Intermediate:

1. Hash Map

2. Tree - Breadth First Search

3. Tree - Depth First Search

4. Graph

5. Heap

6. Modified Binary Search

7. Top K Elements

8. K Way Merge

9. Greedy Algorithm

10. Concurrency

* Advanced:

1. Monotonic Stack

2. Subsets

3. Bitwise XOR

4. Dynamic Programming

5. Backtracking

6. Trie

7. Topological Sort

8. Union Find (Disjoint-Set Data Structure)

9. Ordered Set

4. Coding Interview Preparation Roadmaps:

(a) AlgoMaster Roadmap:

Below is a visual representation of the three main pillars that make up Data Structures and Algorithms 
for Coding Interview's i.e. Data Structures, Algorithms, and Problem-Solving Techniques. 
It demonstrates the relationship between these three pillar's of Computer Science knowledge.

download

Reproduced from "How I Mastered Data Structures and Algorithms" By Ashish Pratap Singh

URL: https://blog.algomaster.io/p/15-leetcode-patterns


(b) Neetcode Roadmap:

Neetcode Roadmap: This is a structured approach to preparing for technical interviews, particularly 
for software engineering roles. It was created by NeetCode, a popular YouTube channel and website 
that offers a variety of resources for coding interview preparation. The roadmap is designed to help 
candidates tackle common interview topics in a systematic and comprehensive way.

Screenshot 2024-11-12 at 14 26 01

Reproduced from "Neetcode Roadmap"

URL: https://neetcode.io/roadmap

5. Leetcode Practice Questions (Curated By Leetcode):

Thought I'd include a list of practice questions under known headings.

  1. Two Pointers (215 Questions [Easy, Medium, Hard])

  2. Sliding Window (146 Questions [Easy, Medium, Hard])

  3. Prefix Sum (196 Questions [Easy, Medium, Hard])

  4. Hash Table (679 Questions [Easy, Medium, Hard])

  5. Counting (157 Questions [Easy, Medium, Hard])

  6. Linked List (79 Questions [Easy, Medium, Hard])

  7. Doubly-Linked List (11 Questions [Easy, Medium, Hard])

  8. Stack (167 Questions [Easy, Medium, Hard])

  9. Queue (47 Questions [Easy, Medium, Hard])

  10. Monotonic Stack (19 Questions [Easy, Medium, Hard])

  11. Monotonic Queue (48 Questions [Easy, Medium, Hard])

  12. Binary Tree (176 Questions [Easy, Medium, Hard])

  13. Binary Search Tree (40 Questions [Easy, Medium, Hard])

  14. Graph (159 Questions [Easy, Medium, Hard])

  15. Breadth-First Search (Tree & Graph) (240 Questions [Easy, Medium, Hard])

  16. Depth-First Search (Tree & Graph) (314 Questions [Easy, Medium, Hard])

  17. Heap (Priority Queue) (190 Questions [Easy, Medium, Hard])

  18. Greedy (406 Questions [Easy, Medium, Hard])

  19. Binary Search (302 Questions [Easy, Medium, Hard])

  20. Backtracking (107 Questions [Easy, Medium, Hard])

  21. Dynamic Programming (571 Questions [Easy, Medium, Hard])

  22. Trie (56 Questions [Easy, Medium, Hard])

  23. Bitmask (49 Questions [Easy, Medium, Hard])

  24. Bit Manipulation (233 Questions [Easy, Medium, Hard])

  25. Math (563 Questions [Easy, Medium, Hard])

The questions below are less likely to appear in a technical test, but they're still good to practice 💪
  1. Union Find (85 Questions [Easy, Medium, Hard])

  2. Topological Sort (11 Questions [Medium, Hard])

  3. Quickselect (7 Questions [Medium])

  4. Radix sort (3 Questions [Medium])

  5. Minimum spanning tree (Kruskal's) (5 Questions [Medium, Hard])

6. Installation:

i. Clone the git repo

https://github.com/AAdewunmi/Grokking-the-Coding-Interview-Patterns-for-Coding-Questions.git

ii. Open project folder

iii. Explore

😎

7. Resources:

I acknowledge the use of LeetCode for coding interview questions 👨‍💻, OpenAI's ChatGPT for topic explanation and solutions to coding questions 🤖.

8. Contributing:

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

9. Adapted from:

Project Name: "Grokking the Coding Interview: Patterns for Coding Questions"

Created by: Design Gurus (2024).

URL: https://www.designgurus.io/course-play/grokking-the-coding-interview/doc/63afd6338d316e91ad9fc027