An open API service indexing awesome lists of open source software.

https://github.com/aadewunmi/grokking-the-coding-interview-patterns-for-coding-questions

Grokking the Coding Interview Patterns for Coding Questions
https://github.com/aadewunmi/grokking-the-coding-interview-patterns-for-coding-questions

algorithms algorithms-and-data-structures coding-interview coding-interview-questions data-structures grokking-algorithms grokking-algorithms-in-java grokking-coding-interview interview-preparation java

Last synced: about 1 month ago
JSON representation

Grokking the Coding Interview Patterns for Coding Questions

Awesome Lists containing this project

README

        

# 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 ](src/Two_Pointers)

[2. Fast And Slow Pointers ](src/Fast_And_Slow_Pointers)

[3. Sliding Window ](src/Sliding_Window)

[4. Merge Intervals ](src/Merge_Intervals)

[5. Cyclic Sort ](src/Cyclic_Sort)

[6. LinkedList - In-Place Reversal ](src/LinkedList_In_Place_Traversal)

[7. Stack ](src/Stack)

[8. Island Pattern (Matrix Traversal) ](src/Island_Matrix_Traversal)

[9. Prefix Sum ](src/Prefix_Sum)

#### * Intermediate:

[1. Hash Map ](src/HashMap_HashTable)

[2. Tree - Breadth First Search ](src/Tree_Breadth_First_Search)

[3. Tree - Depth First Search ](src/Tree_Depth_First_Search)

[4. Graph ](src/Graph)

[5. Heap ](src/Heap)

[6. Modified Binary Search ](src/Modified_Binary_Search)

[7. Top K Elements ](src/Top_K_Elements)

[8. K Way Merge ](src/K_Way_Merge)

[9. Greedy Algorithm ](src/Greedy_Algorithm)

[10. Concurrency ](src/Concurrency)

#### * Advanced:

[1. Monotonic Stack ](src/Monotonic_Stack)

[2. Subsets ](src/Subsets)

[3. Bitwise XOR ](src/Bitwise_XOR)

[4. Dynamic Programming ](src/Dynamic_Programming)

- [4a. 0/1 Knapsack ](src/Dynamic_Programming/_1_0_Knapsack)

- [4b. Unbounded Knapsack ](src/Dynamic_Programming/Unbounded_Knapsack)

- [4c. Fibonacci Numbers ](src/Dynamic_Programming/Fibonacci_Numbers)

- [4d. Palindromic Subsequence ](src/Dynamic_Programming/Palindromic_Subsequence)

- [4e. Longest Common Sub-String ](src/Dynamic_Programming/Longest_Common_SubString)

[5. Backtracking ](src/Backtracking)

[6. Trie ](src/Trie)

[7. Topological Sort ](src/Topological_Sort)

[8. Union Find (Disjoint-Set Data Structure) ](src/Union_Find)

[9. Ordered Set ](src/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](https://github.com/user-attachments/assets/ef9fff3a-b37f-43b1-aae5-013a2c9fdaf9)

*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](https://github.com/user-attachments/assets/a15247b6-ae3d-441a-b4b4-2609d9cfbeea)

*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])](https://leetcode.com/problem-list/two-pointers/)

2. [Sliding Window (146 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/sliding-window/)

3. [Prefix Sum (196 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/prefix-sum/)

4. [Hash Table (679 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/hash-table/)

5. [Counting (157 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/counting/)

6. [Linked List (79 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/linked-list/)

7. [Doubly-Linked List (11 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/doubly-linked-list/)

8. [Stack (167 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/stack/)

9. [Queue (47 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/queue/)

10. [Monotonic Stack (19 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/monotonic-stack/)

11. [Monotonic Queue (48 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/monotonic-queue/)

12. [Binary Tree (176 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/binary-tree/)

13. [Binary Search Tree (40 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/binary-search-tree/)

14. [Graph (159 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/graph/)

15. [Breadth-First Search (Tree & Graph) (240 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/breadth-first-search/)

16. [Depth-First Search (Tree & Graph) (314 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/depth-first-search/)

17. [Heap (Priority Queue) (190 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/heap-priority-queue/)

18. [Greedy (406 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/greedy/)

19. [Binary Search (302 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/binary-search/)

20. [Backtracking (107 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/backtracking/)

21. [Dynamic Programming (571 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/dynamic-programming/)

22. [Trie (56 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/trie/)

23. [Bitmask (49 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/bitmask/)

24. [Bit Manipulation (233 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/bit-manipulation/)

25. [Math (563 Questions [Easy, Medium, Hard])](https://leetcode.com/problem-list/math/)

```
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])](https://leetcode.com/problem-list/union-find/)

2. [Topological Sort (11 Questions [Medium, Hard])](https://leetcode.com/problem-list/topological-sort/)

3. [Quickselect (7 Questions [Medium])](https://leetcode.com/problem-list/quickselect/)

4. [Radix sort (3 Questions [Medium])](https://leetcode.com/problem-list/radix-sort/)

5. [Minimum spanning tree (Kruskal's) (5 Questions [Medium, Hard])](https://leetcode.com/problem-list/minimum-spanning-tree/)

## 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