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
- Host: GitHub
- URL: https://github.com/aadewunmi/grokking-the-coding-interview-patterns-for-coding-questions
- Owner: AAdewunmi
- Created: 2024-05-14T09:09:20.000Z (12 months ago)
- Default Branch: master
- Last Pushed: 2024-05-19T12:52:42.000Z (11 months ago)
- Last Synced: 2024-05-19T14:23:03.141Z (11 months ago)
- Topics: algorithms, algorithms-and-data-structures, coding-interview, coding-interview-questions, data-structures, grokking-algorithms, grokking-algorithms-in-java, grokking-coding-interview, interview-preparation, java
- Language: Java
- Homepage: https://www.designgurus.io/course-play/grokking-the-coding-interview/doc/63afd6338d316e91ad9fc027
- Size: 32.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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 XORL 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, DequeL 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.
*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.
*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